summaryrefslogtreecommitdiff
path: root/sci-libs/caffe2/files/caffe2-2.3.0-fix-libcpp.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-08-07 12:37:21 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-08-07 12:37:21 +0100
commitb8c7370a682e4e29cda623222d17a790c01c3642 (patch)
treef6caa14689bd00a5760eadaa381ff41e50ef3c1b /sci-libs/caffe2/files/caffe2-2.3.0-fix-libcpp.patch
parent8a4997a7e2d1e36c089d4d76935b5a902d98d3d0 (diff)
gentoo auto-resync : 07:08:2024 - 12:37:20
Diffstat (limited to 'sci-libs/caffe2/files/caffe2-2.3.0-fix-libcpp.patch')
-rw-r--r--sci-libs/caffe2/files/caffe2-2.3.0-fix-libcpp.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/sci-libs/caffe2/files/caffe2-2.3.0-fix-libcpp.patch b/sci-libs/caffe2/files/caffe2-2.3.0-fix-libcpp.patch
new file mode 100644
index 000000000000..75808fd7ec50
--- /dev/null
+++ b/sci-libs/caffe2/files/caffe2-2.3.0-fix-libcpp.patch
@@ -0,0 +1,24 @@
+Workaround for libc++ issue https://github.com/llvm/llvm-project/issues/100802
+"reference to __host__ function 'memcpy' in __device__ function"
+--- a/c10/util/Half.h
++++ b/c10/util/Half.h
+@@ -227,7 +227,7 @@ C10_HOST_DEVICE inline float fp16_ieee_to_fp32_value(uint16_t h) {
+ // const float exp_scale = 0x1.0p-112f;
+ constexpr uint32_t scale_bits = (uint32_t)15 << 23;
+ float exp_scale_val = 0;
+- std::memcpy(&exp_scale_val, &scale_bits, sizeof(exp_scale_val));
++ memcpy(&exp_scale_val, &scale_bits, sizeof(exp_scale_val));
+ const float exp_scale = exp_scale_val;
+ const float normalized_value =
+ fp32_from_bits((two_w >> 4) + exp_offset) * exp_scale;
+@@ -298,8 +298,8 @@ inline uint16_t fp16_ieee_from_fp32_value(float f) {
+ constexpr uint32_t scale_to_inf_bits = (uint32_t)239 << 23;
+ constexpr uint32_t scale_to_zero_bits = (uint32_t)17 << 23;
+ float scale_to_inf_val = 0, scale_to_zero_val = 0;
+- std::memcpy(&scale_to_inf_val, &scale_to_inf_bits, sizeof(scale_to_inf_val));
+- std::memcpy(
++ memcpy(&scale_to_inf_val, &scale_to_inf_bits, sizeof(scale_to_inf_val));
++ memcpy(
+ &scale_to_zero_val, &scale_to_zero_bits, sizeof(scale_to_zero_val));
+ const float scale_to_inf = scale_to_inf_val;
+ const float scale_to_zero = scale_to_zero_val;