mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	ggml : riscv: add 128-bit RVV support (#12530)
* ggml : add 128-bit RVV support * ggml : revert to old RVV 256+ q2_K, q3_K, q4_K, q6_K impl * remove trailing whitespaces * restructure vector length selection code
This commit is contained in:
		| @@ -381,6 +381,35 @@ GGML_API void ggml_aligned_free(void * ptr, size_t size); | ||||
|         return r; | ||||
|     } | ||||
|  | ||||
| #elif defined(__riscv) && defined(GGML_RV_ZFH) | ||||
|  | ||||
|     static inline float ggml_compute_fp16_to_fp32(ggml_fp16_t h) { | ||||
|         float f; | ||||
|         __asm__( | ||||
|             "fmv.h.x %[f], %[h]\n\t" | ||||
|             "fcvt.s.h %[f], %[f]" | ||||
|             : [f] "=&f" (f) | ||||
|             : [h] "r" (h) | ||||
|         ); | ||||
|         return f; | ||||
|     } | ||||
|  | ||||
|     static inline ggml_fp16_t ggml_compute_fp32_to_fp16(float f) { | ||||
|         ggml_fp16_t res; | ||||
|         __asm__( | ||||
|             "fcvt.h.s %[f], %[f]\n\t" | ||||
|             "fmv.x.h %[h], %[f]" | ||||
|             : [h] "=&r" (res) | ||||
|             : [f] "f" (f) | ||||
|         ); | ||||
|         return res; | ||||
|     } | ||||
|  | ||||
|     #define GGML_COMPUTE_FP16_TO_FP32(x) ggml_compute_fp16_to_fp32(x) | ||||
|     #define GGML_COMPUTE_FP32_TO_FP16(x) ggml_compute_fp32_to_fp16(x) | ||||
|     #define GGML_FP16_TO_FP32(x) GGML_COMPUTE_FP16_TO_FP32(x) | ||||
|     #define GGML_FP32_TO_FP16(x) GGML_COMPUTE_FP32_TO_FP16(x) | ||||
|  | ||||
| #else | ||||
|  | ||||
|     // FP16 <-> FP32 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 xctan
					xctan