Skip to content

Commit 14ee1cd

Browse files
committed
Fixed curl test issues and added Charan's patches for SIMD and MASS
1 parent 7372716 commit 14ee1cd

File tree

8 files changed

+161
-14
lines changed

8 files changed

+161
-14
lines changed

buildenv

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export ZOPEN_STABLE_DEPS="zoslib make cmake curl"
33
export ZOPEN_DEV_URL="https://github.com/ggerganov/llama.cpp.git"
44
export ZOPEN_DEV_DEPS="zoslib make cmake curl openssl libssh2 zlib libpsl"
55
export ZOPEN_CATEGORIES="ai"
6-
export ZOPEN_DEV_TAG="master"
6+
export ZOPEN_DEV_TAG="b6027"
77
export ZOPEN_NAME="llamacpp-master"
88
export ZOPEN_RUNTIME_DEPS="ncurses"
99

@@ -65,24 +65,25 @@ zopen_check_results()
6565

6666
zopen_pre_check()
6767
{
68-
unset SSL_CERT_FILE
68+
# unset SSL_CERT_FILE
6969
unset SSL_CERT_PATH
70+
export SSL_CERT_PATH=$(curl-config --ca)
7071
export CFLAGS="$CFLAGS -march=z15 -mzvector"
7172
export CPPFLAGS="$CPPFLAGS -march=z15"
7273
}
7374

74-
zopen_append_to_env()
75-
{
76-
export SSL_CERT_PATH=$(curl-config --ca)
77-
# echo envars outside of PATH, MANPATH, LIBPATH
78-
}
79-
80-
zopen_append_to_zoslib_env()
81-
{
82-
cat<<EOF
83-
SSL_CERT_PATH|set|$(curl-config --ca)
84-
EOF
85-
}
75+
# zopen_append_to_env()
76+
# {
77+
# export SSL_CERT_PATH=$(curl-config --ca)
78+
# # echo envars outside of PATH, MANPATH, LIBPATH
79+
# }
80+
81+
# zopen_append_to_zoslib_env()
82+
# {
83+
# cat<<EOF
84+
# SSL_CERT_PATH|set|$(curl-config --ca)
85+
# EOF
86+
# }
8687

8788
zopen_append_to_setup()
8889
{

patches/CMakeLists.txt.patch

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
diff --git a/ggml/src/ggml-cpu/CMakeLists.txt b/ggml/src/ggml-cpu/CMakeLists.txt
2+
index 66a5ad8d..f71c7dec 100644
3+
--- a/ggml/src/ggml-cpu/CMakeLists.txt
4+
+++ b/ggml/src/ggml-cpu/CMakeLists.txt
5+
@@ -51,7 +51,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
6+
7+
target_compile_features(${GGML_CPU_NAME} PRIVATE c_std_11 cxx_std_17)
8+
target_include_directories(${GGML_CPU_NAME} PRIVATE . ggml-cpu)
9+
-
10+
+ list(APPEND ARCH_FLAGS -fzvector -m64 -march=z15)
11+
if (APPLE AND GGML_ACCELERATE)
12+
find_library(ACCELERATE_FRAMEWORK Accelerate)
13+
if (ACCELERATE_FRAMEWORK)
14+
@@ -94,7 +94,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
15+
target_compile_definitions(${GGML_CPU_NAME} PRIVATE GGML_USE_CPU_HBM)
16+
17+
target_link_libraries(${GGML_CPU_NAME} PUBLIC memkind)
18+
- endif()
19+
+ endif()
20+
21+
if (GGML_SYSTEM_ARCH STREQUAL "ARM")
22+
message(STATUS "ARM detected")
23+
@@ -463,11 +463,10 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
24+
message(WARNING "Unknown target. If you are compiling for z14 and earlier, you might have to add -DGGML_VXE=OFF.")
25+
list(APPEND ARCH_FLAGS -march=native -mtune=native)
26+
endif()
27+
-
28+
if (GGML_VXE)
29+
message(STATUS "VX/VXE/VXE2 enabled")
30+
list(APPEND ARCH_FLAGS -mvx -mzvector)
31+
- list(APPEND ARCH_DEFINITIONS GGML_VXE)
32+
+ list(APPEND ARCH_DEFINITIONS GGML_VXE)
33+
endif()
34+
35+
if (GGML_NNPA)
36+
@@ -480,6 +479,17 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
37+
else()
38+
message(WARNING "Unknown CPU architecture. Falling back to generic implementations.")
39+
list(APPEND ARCH_FLAGS -DGGML_CPU_GENERIC)
40+
+ list(APPEND ARCH_DEFINITIONS GGML_VXE)
41+
+ message(STATUS "Added GGML_VXE Flag")
42+
+ if(NOT DEFINED TARGET_ARCH)
43+
+ set(TARGET_ARCH 13)
44+
+ endif()
45+
+ if(TARGET_ARCH GREATER 13)
46+
+ target_compile_options(${GGML_CPU_NAME} PRIVATE "-qarch=${TARGET_ARCH}")
47+
+ endif()
48+
+ target_include_directories(${GGML_CPU_NAME} PRIVATE /usr/include)
49+
+ target_link_libraries(${GGML_CPU_NAME} PRIVATE "/usr/lpp/cbclib/lib/libmass.arch${TARGET_ARCH}.a")
50+
+ message(STATUS "Found MASS: /usr/lpp/cbclib/lib/libmass.arch${TARGET_ARCH}.a")
51+
endif()
52+
53+
if (GGML_CPU_REPACK)

patches/ggml-cpu-impl.h.patch

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
diff --git a/ggml/src/ggml-cpu/ggml-cpu-impl.h b/ggml/src/ggml-cpu/ggml-cpu-impl.h
2+
index d839cf5c..3f8532f7 100644
3+
--- a/ggml/src/ggml-cpu/ggml-cpu-impl.h
4+
+++ b/ggml/src/ggml-cpu/ggml-cpu-impl.h
5+
@@ -68,6 +68,15 @@ struct ggml_compute_params {
6+
#endif // __VXE2__
7+
#endif // __s390x__ && __VEC__
8+
9+
+#if defined(__MVS__) && defined(__VEC__)
10+
+#ifndef __VXE__
11+
+#define __VXE__
12+
+#endif // __VXE__
13+
+#ifndef __VXE2__
14+
+#define __VXE2__
15+
+#endif // __VXE2__
16+
+#endif // __MVS__ && __VEC__
17+
+
18+
#if defined(__s390x__) && defined(GGML_NNPA)
19+
#ifndef __NNPA__
20+
#define __NNPA__
21+
@@ -352,8 +361,9 @@ inline static int32x4_t ggml_vdotq_s32(int32x4_t acc, int8x16_t a, int8x16_t b)
22+
#endif
23+
24+
#if defined(__VXE__) || defined(__VXE2__)
25+
+#ifndef __VEC__
26+
#include <vecintrin.h>
27+
-
28+
+#endif
29+
#define vec_neg(a) (-(a)) // Vector Negate
30+
#define vec_add(a, b) ((a) + (b)) // Vector Add
31+
#define vec_sub(a, b) ((a) - (b)) // Vector Subtract

patches/ops.h.patch

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff --git a/ggml/src/ggml-cpu/ops.h b/ggml/src/ggml-cpu/ops.h
2+
index 3a32ec20..3677919b 100644
3+
--- a/ggml/src/ggml-cpu/ops.h
4+
+++ b/ggml/src/ggml-cpu/ops.h
5+
@@ -1,5 +1,7 @@
6+
#pragma once
7+
8+
+#include <mass.h>
9+
+
10+
#include "ggml.h"
11+
12+
//

patches/sgemm.h.patch

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git a/ggml/src/ggml-cpu/llamafile/sgemm.h b/ggml/src/ggml-cpu/llamafile/sgemm.h
2+
index 729e8853..c85a67dd 100644
3+
--- a/ggml/src/ggml-cpu/llamafile/sgemm.h
4+
+++ b/ggml/src/ggml-cpu/llamafile/sgemm.h
5+
@@ -3,8 +3,10 @@
6+
#include <stdbool.h>
7+
8+
#if defined(__VXE__) || defined(__VXE2__)
9+
+#ifndef __VEC__
10+
#include <vecintrin.h>
11+
#endif
12+
+#endif
13+
14+
#ifdef __cplusplus
15+
extern "C" {

patches/simd-mappings.h.patch

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/ggml/src/ggml-cpu/simd-mappings.h b/ggml/src/ggml-cpu/simd-mappings.h
2+
index b4ad68c9..22657c86 100644
3+
--- a/ggml/src/ggml-cpu/simd-mappings.h
4+
+++ b/ggml/src/ggml-cpu/simd-mappings.h
5+
@@ -1070,7 +1070,7 @@ static inline void __lsx_f16x4_store(ggml_fp16_t * x, __m128 y) {
6+
#define GGML_F16_VEC_MUL GGML_F32Cx4_MUL
7+
#define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE
8+
9+
-#elif defined(__VXE__) || defined(__VXE2__)
10+
+#elif defined(__VXE__) || defined(__VXE2__) || defined(__MVS__)
11+
12+
#define GGML_SIMD
13+

patches/unary-ops.h.patch

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff --git a/ggml/src/ggml-cpu/unary-ops.h b/ggml/src/ggml-cpu/unary-ops.h
2+
index b1ade2c8..eb525682 100644
3+
--- a/ggml/src/ggml-cpu/unary-ops.h
4+
+++ b/ggml/src/ggml-cpu/unary-ops.h
5+
@@ -1,5 +1,7 @@
6+
#pragma once
7+
8+
+#include <mass.h>
9+
+
10+
#include "common.h"
11+
12+
#ifdef __cplusplus

patches/vec.h.patch

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
diff --git a/ggml/src/ggml-cpu/vec.h b/ggml/src/ggml-cpu/vec.h
2+
index c432c990..b144a518 100644
3+
--- a/ggml/src/ggml-cpu/vec.h
4+
+++ b/ggml/src/ggml-cpu/vec.h
5+
@@ -1,4 +1,5 @@
6+
// Vectorized functions for fundamental operations
7+
+#include <mass.h>
8+
9+
#pragma once
10+

0 commit comments

Comments
 (0)