Open BlairSadewitz opened 4 months ago
Thanks, will take a look
This is the proper fix, I think.
diff --git a/otherarch/ggml_v2.h b/otherarch/ggml_v2.h
index dd95ab2c..b4cbb47e 100644
--- a/otherarch/ggml_v2.h
+++ b/otherarch/ggml_v2.h
@@ -212,9 +212,10 @@
extern "C" {
#endif
-#ifdef __ARM_NEON
- // we use the built-in 16-bit float type
+#if defined(__ARM_NEON) && !defined(__CUDACC__)
typedef __fp16 ggml_v2_fp16_t;
+#elif defined(__ARM_NEON) && defined(__CUDACC__)
+ typedef half ggml_v2_fp16_t;
#else
typedef uint16_t ggml_v2_fp16_t;
#endif
I don't really know C, haha, but I was going crazy trying to figure out which type would work for ALL the code. Then I thought, "Umm, hey, bright light, wtf do u think preprocessor conditionals are for?" Yay.
So maybe there is some other way to do it, but that at least works. Because the problem is gcc vs nvcc.
did this to get it to build; obviously I'm not suggesting you actually apply this diff. ;-)
Seems to be all that's necessary, though.