OCTOPUSのGPUノード群では、GPUを利用した数値計算が可能です。本ページではCUDAを用いた自作プログラムを、OCTOPUSで実行する方法について解説しています。
GPUについて
GPUとはGraphics Processing Unitの略称であり、PCにおいて画像処理を担うプロセッサのことを指します。GPUは3DCGのシェーディング処理に特化した性能を持ち、大量のデータを複数のプロセッサで同時かつ高速に並列処理することが出来ます。この特性を生かし、GPUを画像処理以外の用途に利用する技術のことを、GPGPU(General Purpose Computing on GPU)といいます。本ページでは、GPUを計算機での数値計算に利用する方法を解説します。
基本的な利用方法
GPUを利用して数値計算を行う場合は、基本的にNVIDIAが提供するGPU向けの統合開発環境である"CUDA(Compute Unified Device Archtecture)"を利用する必要があります。CUDAはコンパイラやライブラリから構成され、プログラムはC言語を拡張した言語で記述することが出来ます。画像処理の知識は不要です。
CUDAについての詳細は下記のNVIDIA公式ページをご覧ください。
CUDA(NVIDIA)
コンパイル方法
CUDAプログラムをコンパイルする場合は、下記のコマンドを実行してください。
/octfs/apl/CUDA/cuda-9.0/bin/nvcc [option] source_file
source_fileには「.cu」拡張子のプログラムファイルを指定してください。
オプション等については、NVIDA公式ページで提供されているマニュアルをご覧ください。
nvccマニュアル(NVIDIA)
実行スクリプト
バッチ利用において、CUDAプログラムを実行する際のスクリプト例は下記の通りです。
OCTOPUS GPUノード群 1ノード、経過時間 1時間で、CUDAプログラムa.outを実行するスクリプトになります。
1 2 3 4 5 |
#!/bin/bash #PBS -q OCTOPUS #PBS -l elapstim_req=1:00:00,gpunum_job=4 cd $PBS_O_WORKDIR ./a.out |