LoginSignup
4
6

More than 1 year has passed since last update.

julia v0.6.2 で CUDA9.1 を使う。

Last updated at Posted at 2018-01-16

julia v0.6.2 で CUDAnative (CUDA9.1)を使えるようにする(した、というか出来た)。

結論から言うと、juliaのパッケージプロジェクトである、CUDAnative を利用する為には、
julia が使っている llvm を v4.0 以上にする必要があり、 julia の環境構築(build)が必要。
julia の llvmをv4.0.0以上にすれば、REPLで

julia> Pkg.add("CUDAnative")

を行うだけで動く。

とりあえずの一報です。これだけで判る人には判ると思うので。

動いた環境

OS

user@SannaiMaruyama:/usr/source/julia$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

julia

julia v0.6.2
juliaが使用しているllvm v4.0.1

               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: https://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.6.2 (2017-12-13 18:08 UTC)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |  x86_64-linux-gnu

julia> versioninfo()
Julia Version 0.6.2
Commit d386e40* (2017-12-13 18:08 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: AMD Ryzen 7 1700 Eight-Core Processor
  WORD_SIZE: 64
  BLAS: libopenblas (NO_LAPACKE DYNAMIC_ARCH NO_AFFINITY Barcelona)
  LAPACK: liblapack
  LIBM: libopenlibm
  LLVM: libLLVM-4.0.1 (ORCJIT, znver1)

juliaのパッケージ

julia> Pkg.status()
7 required packages:
 - ArrayFire                     0.1.0
 - CUDAapi                       0.3.0
 - CUDAdrv                       0.7.4
 - CUDAnative                    0.5.4
 - Compat                        0.45.0
 - Decimals                      0.2.1
 - LLVM                          0.5.1
4 additional packages:
 - BinDeps                       0.8.3
 - SHA                           0.5.2
 - SpecialFunctions              0.3.7
 - URIParser                     0.3.0

CUDA

CUDA v9.1

user@SannaiMaruyama:/usr/source/julia$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85

Make.inc

user@SannaiMaruyama:/usr/source/julia$ cat Make.user 
#override CC = gcc-7
#override CXX = g++-7
override USECLANG = 1

override USE_SYSTEM_BLAS = 1
#override OPENBLAS_USE_THREAD=0
#override USE_BLAS64 = 1

override LLVM_VER = 4.0.1
#override USE_SYSTEM_LLVM = 1
override USE_LLVM_SHLIB = 1
#override BUILD_LLVM_CLANG = 1

override USE_SYSTEM_SUITESPARSE = 1
override USE_SYSTEM_PCRE = 1
override USE_SYSTEM_GMP = 1
override USE_SYSTEM_MPFR = 1
override USE_SYSTEM_ARPACK = 1
override USE_SYSTEM_LAPACK = 1
override USE_SYSTEM_CURL = 1

#override USE_SYSTEM_MBEDTLS = 1
#override USE_SYSTEM_LIBSSH2 = 1
#override USE_SYSTEM_LIBGIT2 = 1

#override USE_SYSTEM_LIBUNWIND = 1
#override DISABLE_LIBUNWIND = 1
#override USE_SYSTEM_UTF8PROC = 1
#override USE_SYSTEM_LIBUV = 1
#override USE_SYSTEM_LIBM = 1
#override USE_SYSTEM_OPENLIBM = 1
#override UNTRUSTED_SYSTEM_LIBM = 1
#override USE_SYSTEM_DSFMT = 1

最後に

とりあえず動いたので、一報として上げ後で追記すれば良いと思っていたのですが、Cudaを動作させるビルド環境を作るには、全てのツールチェーンの一貫性を維持しないと駄目なので、色々四苦八苦してます。
まとまったら、また改めて記事にします。

julia CUDAnative

4
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6