うずまき2017 powered by Jun-Systems

耳管開放症, SAS, 統計解析, 人工知能, プログラミングそれに思考

*

【備忘録】CUDAmatコマンド集

   

GPU計算ライブラリCUDAmatの使い方など。
cudamatは to make it easy to perform basic matrix calculations on CUDA-enabled GPUs from Python を目的に作られたPythonライブラリです。内部ではCUBLASとかが走っています。CUBLASとは、「BLAS (Basic Linear Algebra Subprograms) ライブラリをCUDA上で最適化したライブラリ」(CUBLASを使ってみよう | CUDA Information)です。BLAS自体が大規模な数値演算には必須みたいな雰囲気を醸しているなか、CやPythonでこうやって簡単に扱えるというのは本当に素晴らしいですね。世の中は素晴らしいな。
CUDAはNVidiaのGeForce系のGPUとかだと割と走るっぽい。ということで今回は、PythonでDeepNetを使う インストール編でDeepNetを扱うにあたってdependenciesとして入れたcudamatを触ってみます。つまり、GPU上での数値演算を簡単にやってみるただのコマンド備忘録です。

新しく使うごとに増やしていきます。

>> from numpy import random as r
>> import cudamat as cm

扱うにあたっては、まずcublasを初期化する。

>> cm.cublas_init()

初期化したら計算を始める。

>> a = cm.CUDAMatrix(r.rand(32,256))
>> b = cm.CUDAMatrix(r.rand(256,32))
>> c = cm.dot(a,b)
>> d = c.sum(axis=0)

CUDAMatrixを使うと、それ自体はobjectとして定義されるので、単純に変数自体を叩いても

>>>  a
<cudamat.cudamat.CUDAMatrix object at 0x112e62350>

という感じでオブジェクトが返されるので、中身を見たい場合には、asarrayとかをつければちゃんと中身が返ってくる。

>>> a.asarray()
array([[ 0.88960874,  0.55513722,  0.54112846, ...,  0.31480977,
         0.92629158,  0.76370656],
       [ 0.45251766,  0.5497604 ,  0.09738627, ...,  0.21974818,
         0.54540431,  0.4542574 ],
       [ 0.58207011,  0.91038048,  0.77992296, ...,  0.2595101 ,
         0.94157529,  0.77927464],
       ..., 
       [ 0.97554946,  0.12315555,  0.03429164, ...,  0.45550725,
         0.78689975,  0.13259877],
       [ 0.13267641,  0.52145469,  0.07688209, ...,  0.3039805 ,
         0.93722147,  0.15900777],
       [ 0.379605  ,  0.81325132,  0.46341258, ...,  0.40942198,
         0.92630947,  0.02103441]], dtype=float32)

 - cudamat , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

関連記事はありませんでした