Skip to content

Commit 10942ca

Browse files
Tameem-10xEarthw
authored andcommitted
riscv : modify Makefile and add a RISCV_VECT to print log info (ggml-org#9442)
- Added ggml_cpu_has_riscv_v() in GGML to print system info in log - Modified Makefile to only use flag when cross compiling for RISC-V
1 parent 4aa7e80 commit 10942ca

File tree

5 files changed

+18
-2
lines changed

5 files changed

+18
-2
lines changed

Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ endif
434434
# TODO: probably these flags need to be tweaked on some architectures
435435
# feel free to update the Makefile for your architecture and send a pull request or issue
436436

437-
ifndef RISCV
437+
ifndef RISCV_CROSS_COMPILE
438438

439439
ifeq ($(UNAME_M),$(filter $(UNAME_M),x86_64 i686 amd64))
440440
# Use all CPU extensions that are available:
@@ -514,7 +514,12 @@ ifneq ($(filter loongarch64%,$(UNAME_M)),)
514514
MK_CXXFLAGS += -mlasx
515515
endif
516516

517-
else
517+
ifneq ($(filter riscv64%,$(UNAME_M)),)
518+
MK_CFLAGS += -march=rv64gcv -mabi=lp64d
519+
MK_CXXFLAGS += -march=rv64gcv -mabi=lp64d
520+
endif
521+
522+
else # RISC-V CROSS COMPILATION
518523
MK_CFLAGS += -march=rv64gcv -mabi=lp64d
519524
MK_CXXFLAGS += -march=rv64gcv -mabi=lp64d
520525
endif

common/common.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1828,6 +1828,7 @@ void yaml_dump_non_result_info(FILE * stream, const gpt_params & params, const l
18281828
fprintf(stream, "cpu_has_sve: %s\n", ggml_cpu_has_sve() ? "true" : "false");
18291829
fprintf(stream, "cpu_has_f16c: %s\n", ggml_cpu_has_f16c() ? "true" : "false");
18301830
fprintf(stream, "cpu_has_fp16_va: %s\n", ggml_cpu_has_fp16_va() ? "true" : "false");
1831+
fprintf(stream, "cpu_has_riscv_v: %s\n", ggml_cpu_has_riscv_v() ? "true" : "false");
18311832
fprintf(stream, "cpu_has_wasm_simd: %s\n", ggml_cpu_has_wasm_simd() ? "true" : "false");
18321833
fprintf(stream, "cpu_has_blas: %s\n", ggml_cpu_has_blas() ? "true" : "false");
18331834
fprintf(stream, "cpu_has_sse3: %s\n", ggml_cpu_has_sse3() ? "true" : "false");

ggml/include/ggml.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2470,6 +2470,7 @@ extern "C" {
24702470
GGML_API int ggml_cpu_has_gpublas (void);
24712471
GGML_API int ggml_cpu_has_sse3 (void);
24722472
GGML_API int ggml_cpu_has_ssse3 (void);
2473+
GGML_API int ggml_cpu_has_riscv_v (void);
24732474
GGML_API int ggml_cpu_has_sycl (void);
24742475
GGML_API int ggml_cpu_has_rpc (void);
24752476
GGML_API int ggml_cpu_has_vsx (void);

ggml/src/ggml.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23288,6 +23288,14 @@ int ggml_cpu_has_arm_fma(void) {
2328823288
#endif
2328923289
}
2329023290

23291+
int ggml_cpu_has_riscv_v(void) {
23292+
#if defined(__riscv_v_intrinsic)
23293+
return 1;
23294+
#else
23295+
return 0;
23296+
#endif
23297+
}
23298+
2329123299
int ggml_cpu_has_metal(void) {
2329223300
#if defined(GGML_USE_METAL)
2329323301
return 1;

src/llama.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20677,6 +20677,7 @@ const char * llama_print_system_info(void) {
2067720677
s += "ARM_FMA = " + std::to_string(ggml_cpu_has_arm_fma()) + " | ";
2067820678
s += "F16C = " + std::to_string(ggml_cpu_has_f16c()) + " | ";
2067920679
s += "FP16_VA = " + std::to_string(ggml_cpu_has_fp16_va()) + " | ";
20680+
s += "RISCV_VECT = " + std::to_string(ggml_cpu_has_riscv_v()) + " | ";
2068020681
s += "WASM_SIMD = " + std::to_string(ggml_cpu_has_wasm_simd()) + " | ";
2068120682
s += "BLAS = " + std::to_string(ggml_cpu_has_blas()) + " | ";
2068220683
s += "SSE3 = " + std::to_string(ggml_cpu_has_sse3()) + " | ";

0 commit comments

Comments
 (0)