Commit ecffef86 authored by Ludovic Courtès's avatar Ludovic Courtès
Browse files

cuda: Add 11.0.3.

* non-free/cuda.scm (cuda-11.0): New variable.
(no-float128)[description]: Mention CUDA 8.0.
parent 4b9f8793
......@@ -6,7 +6,7 @@
;;; are detrimental to user freedom and to proper scientific review and
;;; experimentation. As such, we kindly invite you not to share it.
;;;
;;; Copyright © 2018, 2019 Inria
;;; Copyright © 2018, 2019, 2020 Inria
(define-module (non-free cuda)
#:use-module (guix)
......@@ -137,6 +137,77 @@ libraries for NVIDIA GPUs, all of which are proprietary.")
"https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run"
"1i4xrsqbad283qffvysn88w2pmxzxbbby41lw0j1113z771akv4w")))
(define-public cuda-11.0
(package
(inherit cuda-8.0)
(version "11.0.3")
(source
(cuda-source
"https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run"
"1h4c69nfrgm09jzv8xjnjcvpq8n4gnlii17v3wzqry5d13jc8ydh"))
(outputs '("out")) ;XXX: no documentation for now
(arguments
(substitute-keyword-arguments (package-arguments cuda-8.0)
((#:modules modules)
`((guix build utils)
(guix build gnu-build-system)
(ice-9 match)
(ice-9 ftw))) ;for 'scandir'
((#:phases phases)
`(modify-phases ,phases
(replace 'unpack
(lambda* (#:key inputs #:allow-other-keys)
(define libc
(assoc-ref inputs "libc"))
(define ld.so
(string-append libc ,(glibc-dynamic-linker)))
(let ((source (assoc-ref inputs "source")))
(invoke "sh" source "--keep" "--noexec")
(chdir "pkg")
#t)))
(add-after 'unpack 'remove-superfluous-stuff
(lambda _
;; Remove things we have no use for.
(with-directory-excursion "builds"
(for-each delete-file-recursively
'("nsight_compute" "nsight_systems" "cuda_gdb")))
#t))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(define (copy-from-directory directory)
(for-each (lambda (entry)
(define sub-directory
(string-append directory "/" entry))
(define target
(string-append out "/" (basename entry)))
(when (file-exists? sub-directory)
(copy-recursively sub-directory target)))
'("bin" "targets/x86_64-linux/lib"
"targets/x86_64-linux/include"
"nvvm/bin" "nvvm/include"
"nvvm/lib64")))
(setenv "COLUMNS" "200") ;wide backtraces!
(with-directory-excursion "builds"
(for-each copy-from-directory
(scandir "." (match-lambda
((or "." "..") #f)
(_ #t))))
;; 'cicc' needs that directory.
(copy-recursively "cuda_nvcc/nvvm/libdevice"
(string-append out "/nvvm/libdevice")))
#t)))
;; XXX: No documentation for now.
(delete 'move-documentation)))))
(native-inputs
`(("which" ,which)
,@(package-native-inputs cuda-8.0)))))
(define-public cuda
;; Default version.
cuda-8.0)
......@@ -171,7 +242,7 @@ libraries for NVIDIA GPUs, all of which are proprietary.")
(description
"This package provides a @file{<bits/floatn.h>} header to override that
of glibc and disable float128 support. This is required allow the use of
@command{nvcc} with glibc 2.26+. Otherwise, @command{nvcc} fails like this:
@command{nvcc} with CUDA 8.0 and glibc 2.26+. Otherwise, @command{nvcc} fails like this:
@example
/gnu/store/…-glibc-2.26.105-g0890d5379c/include/bits/floatn.h(61): error: invalid argument to attribute \"__mode__\"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment