[Bug 1717257] [NEW] proposal of patch to avoid erros in compiping NVCC

DSUZUKI 1717257 at bugs.launchpad.net
Thu Sep 14 13:15:29 UTC 2017


Public bug reported:

Here is another proposal regarding bug report I posted (but in reject).
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1716816

I reported that glibc 2.26-0ubuntu1 ( adopted in Artful-proposed on Sep
5.) causes compilation error by using NVIDIA's CUDA8.0  and 9.0RC.

Under glibc 2.24, they work.

It maybe comes from glibc226's new feature, i.e. "128-bit floating point
as defined by ISO/IEC/IEEE 60559:2011 (IEEE 754-2008) and ISO/IEC TS
18661-3:2015" . (Evidence Scripted at bottom)

I proposed the patch to

  /usr/include/x86_64-linux-gnu/bits/floatn.h

which lets NVCC (CUDA's compiler) avoid __float128 (NVCC does   support
neither  8.0 nor 9.0).

So can the patch be merged to glibc2.25 be adopted in Arful or later?

-------------------------------------------------------------------------------------
*** floatn.h-dist	2017-09-04 16:34:21.000000000 +0900
--- floatn.h	2017-09-14 21:46:15.334033614 +0900
***************
*** 28,34 ****
     support, for x86_64 and x86.  */
  #if (defined __x86_64__							\
       ? __GNUC_PREREQ (4, 3)						\
!      : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
  # define __HAVE_FLOAT128 1
  #else
  # define __HAVE_FLOAT128 0
--- 28,35 ----
     support, for x86_64 and x86.  */
  #if (defined __x86_64__							\
       ? __GNUC_PREREQ (4, 3)						\
!      : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \
!   &&  !defined(__CUDACC__)
  # define __HAVE_FLOAT128 1
  #else
  # define __HAVE_FLOAT128 0
-------------------------------------------------------------------------------------

(evidence)
----------
1. Here is part of message during compiing Tensorflow with CUDA on UBUNTU17.10 beta with proposed-components. .
--------------
typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
                         ^
INFO: From Compiling external/nccl_archive/src/broadcast.cu.cc:
/usr/include/x86_64-linux-gnu/bits/floatn.h(61): error: invalid argument to attribute "__mode__"

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

2. Forums in INVIDIA
where issues the problems around glibc.2.26

NVIDIA
https://devtalk.nvidia.com/default/topic/1023776/cuda-programming-and-performance/-request-add-nvcc-compatibility-with-glibc-2-26/

3. THis bug  has already discussed in Arch linux and the patch (tas same ) proposed
https://www.reddit.com/r/archlinux/comments/6zrmn1/torch_on_arch/

** Affects: glibc (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: artful artful-proposed cuda glibc nvcc

** Description changed:

  Here is another proposal regarding bug report I posted (but in reject).
  https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1716816
  
  I reported that glibc 2.26-0ubuntu1 ( adopted in Artful-proposed on Sep
  5.) causes compilation error by using NVIDIA's CUDA8.0  and 9.0RC.
  
  Under glibc 2.24, they work.
  
  It maybe comes from glibc226's new feature, i.e. "128-bit floating point
  as defined by ISO/IEC/IEEE 60559:2011 (IEEE 754-2008) and ISO/IEC TS
  18661-3:2015" . (Evidence Scripted at bottom)
  
  I proposed the patch to
  
-   /usr/include/x86_64-linux-gnu/bits/floatn.h
+   /usr/include/x86_64-linux-gnu/bits/floatn.h
  
  which lets NVCC (CUDA's compiler) avoid __float128 (NVCC does   support
  neither  8.0 nor 9.0).
  
  So can the patch be merged to glibc2.25 be adopted in Arful or later?
  
  -------------------------------------------------------------------------------------
  *** floatn.h-dist	2017-09-04 16:34:21.000000000 +0900
  --- floatn.h	2017-09-14 21:46:15.334033614 +0900
  ***************
  *** 28,34 ****
-      support, for x86_64 and x86.  */
-   #if (defined __x86_64__							\
-        ? __GNUC_PREREQ (4, 3)						\
+      support, for x86_64 and x86.  */
+   #if (defined __x86_64__							\
+        ? __GNUC_PREREQ (4, 3)						\
  !      : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
-   # define __HAVE_FLOAT128 1
-   #else
-   # define __HAVE_FLOAT128 0
+   # define __HAVE_FLOAT128 1
+   #else
+   # define __HAVE_FLOAT128 0
  --- 28,35 ----
-      support, for x86_64 and x86.  */
-   #if (defined __x86_64__							\
-        ? __GNUC_PREREQ (4, 3)						\
+      support, for x86_64 and x86.  */
+   #if (defined __x86_64__							\
+        ? __GNUC_PREREQ (4, 3)						\
  !      : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \
  !   &&  !defined(__CUDACC__)
-   # define __HAVE_FLOAT128 1
-   #else
-   # define __HAVE_FLOAT128 0
+   # define __HAVE_FLOAT128 1
+   #else
+   # define __HAVE_FLOAT128 0
  -------------------------------------------------------------------------------------
- 
  
  (evidence)
  ----------
  1. Here is part of message during compiing Tensorflow with CUDA on UBUNTU17.10 beta with proposed-components. .
  --------------
  typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
-                          ^
+                          ^
  INFO: From Compiling external/nccl_archive/src/broadcast.cu.cc:
  /usr/include/x86_64-linux-gnu/bits/floatn.h(61): error: invalid argument to attribute "__mode__"
  
  /usr/include/x86_64-linux-gnu/bits/floatn.h(73): error: identifier "__float128" is undefined
  --------------
  
- 2. Forums in Intel and NVIDIA
+ 2. Forums in INVIDIA
  where issues the problems around glibc.2.26
  
  NVIDIA
  https://devtalk.nvidia.com/default/topic/1023776/cuda-programming-and-performance/-request-add-nvcc-compatibility-with-glibc-2-26/
  
  3. THis bug  has already discussed in Arch linux and the patch (tas same ) proposed
  https://www.reddit.com/r/archlinux/comments/6zrmn1/torch_on_arch/

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glibc in Ubuntu.
https://bugs.launchpad.net/bugs/1717257

Title:
  proposal of patch to avoid erros in compiping NVCC

Status in glibc package in Ubuntu:
  New

Bug description:
  Here is another proposal regarding bug report I posted (but in reject).
  https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1716816

  I reported that glibc 2.26-0ubuntu1 ( adopted in Artful-proposed on
  Sep 5.) causes compilation error by using NVIDIA's CUDA8.0  and 9.0RC.

  Under glibc 2.24, they work.

  It maybe comes from glibc226's new feature, i.e. "128-bit floating
  point as defined by ISO/IEC/IEEE 60559:2011 (IEEE 754-2008) and
  ISO/IEC TS 18661-3:2015" . (Evidence Scripted at bottom)

  I proposed the patch to

    /usr/include/x86_64-linux-gnu/bits/floatn.h

  which lets NVCC (CUDA's compiler) avoid __float128 (NVCC does
  support neither  8.0 nor 9.0).

  So can the patch be merged to glibc2.25 be adopted in Arful or later?

  -------------------------------------------------------------------------------------
  *** floatn.h-dist	2017-09-04 16:34:21.000000000 +0900
  --- floatn.h	2017-09-14 21:46:15.334033614 +0900
  ***************
  *** 28,34 ****
       support, for x86_64 and x86.  */
    #if (defined __x86_64__							\
         ? __GNUC_PREREQ (4, 3)						\
  !      : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
    # define __HAVE_FLOAT128 1
    #else
    # define __HAVE_FLOAT128 0
  --- 28,35 ----
       support, for x86_64 and x86.  */
    #if (defined __x86_64__							\
         ? __GNUC_PREREQ (4, 3)						\
  !      : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \
  !   &&  !defined(__CUDACC__)
    # define __HAVE_FLOAT128 1
    #else
    # define __HAVE_FLOAT128 0
  -------------------------------------------------------------------------------------

  (evidence)
  ----------
  1. Here is part of message during compiing Tensorflow with CUDA on UBUNTU17.10 beta with proposed-components. .
  --------------
  typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
                           ^
  INFO: From Compiling external/nccl_archive/src/broadcast.cu.cc:
  /usr/include/x86_64-linux-gnu/bits/floatn.h(61): error: invalid argument to attribute "__mode__"

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

  2. Forums in INVIDIA
  where issues the problems around glibc.2.26

  NVIDIA
  https://devtalk.nvidia.com/default/topic/1023776/cuda-programming-and-performance/-request-add-nvcc-compatibility-with-glibc-2-26/

  3. THis bug  has already discussed in Arch linux and the patch (tas same ) proposed
  https://www.reddit.com/r/archlinux/comments/6zrmn1/torch_on_arch/

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1717257/+subscriptions



More information about the foundations-bugs mailing list