CUDA6.5/Ubuntu14.04 †Tesla K20c を搭載した PC へ Ubuntu 14.04 をインストールし、 Hardware Spec †主な Hardware Spec は以下のとおりです。
Ubuntu 14.04 のインストール †以下のような設定で Ubuntu 14.04.01 LTS Desktop 64bit版をインストールします。
後で邪魔になるので Ubuntu インストール DVD の起動オプションで nomodeset を付けて起動し、 Ubuntu 14.04 インストール後設定 †インストール完了後、以下の設定を行います。 Ubuntu 14.04 アップデート †最新の状態に更新します。 $ sudo apt-get update $ sudo apt-get dist-upgrade アップデート完了後再起動を実行し、アップデートした Kernel で起動することを確認します。 Nouveau 無効化 †NVIDIA 製 GPU ドライバーをインストール出来るようにしそちらが使われるようにするため、 blacklist nouveau options nouveau modeset=0 この設定が反映されるよう kernel initramfs を再生成します。 $ sudo update-initramfs -u 再起動し、Nouveau ドライバーが読み込まれていないことを確認します。 パッケージのインストール †Ubuntu 14.04 インストール直後の状態で CUDA のインストールに必要なパッケージは全てインストール済みですが、 $ sudo apt-get install vim lv ssh naoutilus-open-terminal build-essential CUDA 6.5 のインストール †CUDA 6.5 からは Ubuntu が正式にサポートディストリビューションになり $ sudo dpkg -i cuda-repo-ubuntu1404_6.5-14_amd64.deb この deb パッケージは apt sources list に NVIDIA のリポジトリを追加するだけですので、 $ sudo apt-get update $ sudo apt-get install cuda これで CUDA 6.5 のインストールは完了です。 CUDA 6.5 インストール後設定 †環境変数設定 †CUDA 6.5 が /usr/local/cuda-6.5/ の下に一式インストールされましたので、 $ export PATH=/usr/local/cuda-6.5/bin:$PATH $ export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH これで新しく開いた Terminal から環境変数が反映されます。 CUDA Samples コピー †/usr/local/cuda-6.5/samples/ の下に sample がインストールされていますが $ cuda-install-samples-6.5.sh ~ /home/{user}/NVIDIA_CUDA-6.5_Samples/ に sample がコピーされます。 Samples のビルドと実行 †以下のようにしてコピー出来た Samples をビルドします。 $ cd ~/NVIDIA_CUDA-6.5_Samples $ make これで NVIDIA_CUDA-6.5_Samples の下のサブディレクトリの各 Sample が全てビルドされます。 $ cd bin/x86_64/linux/release beat@tesla:~/NVIDIA_CUDA-6.5_Samples/bin/x86_64/linux/release$ ls alignedTypes cudaDecodeGL matrixMul scan simpleTemplates asyncAPI cudaOpenMP matrixMulCUBLAS segmentationTreeThrust simpleTexture bandwidthTest cuHook matrixMulDrv shfl_scan simpleTexture3D batchCUBLAS dct8x8 matrixMulDynlinkJIT simpleAssert simpleTextureDrv bicubicTexture deviceQuery matrixMul_kernel64.ptx simpleAtomicIntrinsics simpleTexture_kernel64.ptx bilateralFilter deviceQueryDrv MC_EstimatePiInlineP simpleCallback simpleVoteIntrinsics bindlessTexture dwtHaar1D MC_EstimatePiInlineQ simpleCubemapTexture simpleZeroCopy binomialOptions dxtc MC_EstimatePiP simpleCUBLAS smokeParticles BlackScholes eigenvalues MC_EstimatePiQ simpleCUDA2GL SobelFilter boxFilter fastWalshTransform MC_SingleAsianOptionP simpleCUFFT SobolQRNG boxFilterNPP FDTD3d mergeSort simpleCUFFT_2d_MGPU sortingNetworks cdpAdvancedQuicksort fluidsGL MersenneTwisterGP11213 simpleCUFFT_callback stereoDisparity cdpBezierTessellation freeImageInteropNPP MonteCarloMultiGPU simpleCUFFT_MGPU StreamPriorities cdpLUDecomposition FunctionPointers nbody simpleDevLibCUBLAS template cdpQuadtree grabcutNPP newdelete simpleGL template_runtime cdpSimplePrint histEqualizationNPP NV12ToARGB_drvapi64.ptx simpleHyperQ threadFenceReduction cdpSimpleQuicksort histogram oceanFFT simpleIPC threadMigration clock HSOpticalFlow p2pBandwidthLatencyTest simpleLayeredTexture threadMigration_kernel64.ptx concurrentKernels imageDenoising particles simpleMultiCopy transpose conjugateGradient imageSegmentationNPP postProcessGL simpleMultiGPU UnifiedMemoryStreams conjugateGradientPrecond inlinePTX ptxjit simpleOccupancy vectorAdd conjugateGradientUM interval quasirandomGenerator simpleP2P vectorAddDrv convolutionFFT2D jpegNPP radixSortThrust simplePitchLinearTexture vectorAdd_kernel64.ptx convolutionSeparable libcuhook.so.1 randomFog simplePrintf volumeFiltering convolutionTexture lineOfSight recursiveGaussian simpleSeparateCompilation volumeRender cppIntegration Mandelbrot reduction simpleStreams cppOverload marchingCubes scalarProd simpleSurfaceWrite Running the Binaries beat@tesla:~/NVIDIA_CUDA-6.5_Samples/bin/x86_64/linux/release$ ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 2 CUDA Capable device(s) Device 0: "Tesla K20c" CUDA Driver Version / Runtime Version 6.5 / 6.5 CUDA Capability Major/Minor version number: 3.5 Total amount of global memory: 4800 MBytes (5032706048 bytes) (13) Multiprocessors, (192) CUDA Cores/MP: 2496 CUDA Cores GPU Clock rate: 706 MHz (0.71 GHz) Memory Clock rate: 2600 Mhz Memory Bus Width: 320-bit L2 Cache Size: 1310720 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 2 copy engine(s) Run time limit on kernels: No Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Enabled Device supports Unified Addressing (UVA): Yes Device PCI Bus ID / PCI location ID: 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > Device 1: "GeForce GT 730" CUDA Driver Version / Runtime Version 6.5 / 6.5 CUDA Capability Major/Minor version number: 3.5 Total amount of global memory: 1023 MBytes (1073020928 bytes) ( 2) Multiprocessors, (192) CUDA Cores/MP: 384 CUDA Cores GPU Clock rate: 954 MHz (0.95 GHz) Memory Clock rate: 2505 Mhz Memory Bus Width: 64-bit L2 Cache Size: 524288 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Device PCI Bus ID / PCI location ID: 2 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > > Peer access from Tesla K20c (GPU0) -> GeForce GT 730 (GPU1) : No > Peer access from GeForce GT 730 (GPU1) -> Tesla K20c (GPU0) : No deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 2, Device0 = Tesla K20c, Device1 = GeForce GT 730 Result = PASS また、bandwidthTest を実行すると以下のような結果になります。 beat@tesla:~/NVIDIA_CUDA-6.5_Samples/bin/x86_64/linux/release$ ./bandwidthTest [CUDA Bandwidth Test] - Starting... Running on... Device 0: Tesla K20c Quick Mode Host to Device Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 6577.3 Device to Host Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 6545.8 Device to Device Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 147234.3 Result = PASS 更新履歴 †2015/01/27 初稿掲載 Satoshi OTSUKA
|