コンテンツにスキップ

4. CUDALink の使用方法

Warning

現在mathematica/13.1.0でのみCUDALinkの動作を確認しております。

CUDALink を用いることで、Mathematicaにて GPU を利用できるようになります。
CUDALinkについての詳細な内容は、Mathematicaドキュメントセンターの以下のページをご参照ください。
CUDALink ユーザガイド
CUDALink
GPU計算

4.2. CUDALinkの読み込みと動作確認

GSICUSER@r0i0n0:~> module load cuda mathematica/13.1.0
GSICUSER@r0i0n0:~> math
Mathematica 11.2.0 Kernel for Linux x86 (64-bit)
Copyright 1988-2017 Wolfram Research, Inc.

In[1]:= Needs["CUDALink`"]                                                                                           
In[2]:= CUDAQ[]                                                                                                     

Out[2]= True

In[3]:= CUDADot[Table[i, {i, 10}, {j, 10}],Table[i, {i, 10}, {j, 10}]]                                                             
Out[3]= {{55, 55, 55, 55, 55, 55, 55, 55, 55, 55}, {110, 110, 110, 110, 110, 110, 110, 110, 110, 110},

>    {165, 165, 165, 165, 165, 165, 165, 165, 165, 165}, {220, 220, 220, 220, 220, 220, 220, 220, 220, 220},

>    {275, 275, 275, 275, 275, 275, 275, 275, 275, 275}, {330, 330, 330, 330, 330, 330, 330, 330, 330, 330},

>    {385, 385, 385, 385, 385, 385, 385, 385, 385, 385}, {440, 440, 440, 440, 440, 440, 440, 440, 440, 440},

>    {495, 495, 495, 495, 495, 495, 495, 495, 495, 495}, {550, 550, 550, 550, 550, 550, 550, 550, 550, 550}}

In[4]:= lst = RandomReal[1., {10}];                                                                                                
In[5]:= CUDAFourier[lst]                                                                                                            
Out[5]= {2.00511 + 0. I, 0.170165 + 0.153382 I, 0.313523 + 0.0756414 I, -0.0606903 + 0.209749 I, 0.178923 - 0.522008 I,

>    -0.200097 + 0. I, 0.178923 + 0.522008 I, -0.0606903 - 0.209749 I, 0.313523 - 0.0756414 I, 0.170165 - 0.153382 I}

In[6]:= Fourier[lst]                                                                                                               
Out[6]= {2.00511 + 0. I, 0.170165 + 0.153382 I, 0.313523 + 0.0756414 I, -0.0606903 + 0.209749 I, 0.178923 - 0.522008 I,

>    -0.200097 + 0. I, 0.178923 + 0.522008 I, -0.0606903 - 0.209749 I, 0.313523 - 0.0756414 I, 0.170165 - 0.153382 I}