xpra icon
Bug tracker and wiki

Opened 5 months ago

Closed 2 months ago

#1600 closed defect (fixed)

CUDA build errors with Fedora 27

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 2.2
Component: packaging Version: trunk
Keywords: Cc:

Description

The rawhide buildbot is spewing out:

found gcc version: 7.1.1
found CUDA compiler: /usr/local/cuda-8.0/bin/nvcc version 8.0.44
found CUDA compiler: /usr/local/cuda/bin/nvcc version 8.0.44
CUDA compiling ARGB_to_NV12     (no file)
 '/usr/local/cuda/bin/nvcc' '-fatbin' '-c' 'xpra/codecs/cuda_common/ARGB_to_NV12.cu' '-o' 'xpra/codecs/cuda_common/ARGB_to_NV12.fatbin' '-std=c++11' '-gencode=arch=compute_30,code=sm_30' '-gencode=arch=compute_35,code=sm_35' '-gencode=arch=compute_50,code=sm_50' '-gencode=arch=compute_52,code=sm_52' '-gencode=arch=compute_53,code=sm_53' '-gencode=arch=compute_60,code=sm_60' '-gencode=arch=compute_61,code=sm_61' '-gencode=arch=compute_62,code=sm_62'
Error: failed to compile CUDA kernel ARGB_to_NV12

/usr/include/bits/floatn.h(61): error: invalid argument to attribute "__mode__"

/usr/include/bits/floatn.h(73): error: identifier "__float128" is undefined

2 errors detected in the compilation of "/tmp/tmpxft_00004589_00000000-21_ARGB_to_NV12.compute_62.cpp1.ii".

error: Bad exit status from /var/tmp/rpm-tmp.1ToY7b (%build)
    Bad exit status from /var/tmp/rpm-tmp.1ToY7b (%build)

Hopefully a new CUDA SDK will come out and fix this?

Change History (1)

comment:1 Changed 2 months ago by Antoine Martin

Resolution: fixed
Status: newclosed

Workaround found here https://github.com/caffe2/caffe2/issues/1194#issuecomment-330668216 is to manually patch the system headers file /usr/include/bits/floatn.h (yukky but this works):

diff --git a/floatn.h b/floatn.h
index f93a9f8..96db3c3 100644
--- a/floatn.h
+++ b/floatn.h
@@ -34,6 +34,11 @@
 # define __HAVE_FLOAT128 0
 #endif
 
+#if CUDART_VERSION
+#undef __HAVE_FLOAT128
+#define __HAVE_FLOAT128 0
+#endif
+
 /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
    from the default float, double and long double types in this glibc.  */
 #if __HAVE_FLOAT128

This will have to do for now, the proper fix needs to come from nvidia.

We now have beta builds for Fedora 27.

Note: See TracTickets for help on using tickets.