Google Colaboratory で OpenCL
Colaboratory は、Google が提供する Jupyter ノートブック環境です。
Google にログインし、ブラウザから以下の URL にアクセスすると、利用できます。
Jupyter notebook なので、基本は python のプログラムを実行しますが、C 言語のプログラムをコンパイルして、実行することもできます。
また、GPU や TPU も利用できます。
なので、C で書かれた OpenCL プログラムも実行できます。
ここでは、C 言語で書かれた OpenCL のプログラムで CPU と GPU による行列積を実行します。
まずは、C で書かれたプログラムを実行してみます。
メニューから、「ファイル -> Python3 の新しいノートブック」 を開きます。
メニューから、「ランタイム -> ランタイムのタイプを変更」 を選び、「ハードウェアアクセラレータを GPU」 にして、「保存」します。
コードセルと呼ばれる欄に、! に続いて linux のコマンドを入力して、三角の再生ボタンを押す(または、セル内で Shift+Enter を押す)と実行され、結果が表示されます。
例えば、ファイルのリストを見るには以下の様にします。
!ls
"+コード" を押して、セルを追加し、以下の様に入力して、実行します。
%%file test.c
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Hello colaboratory!\n");
return 0;
}
すると、test.c というファイル名で、内容が書かれます。
"%%file" が、ファイルを作成するマジックキーワードです。
"+コード" を押して、セルを追加し、以下の様に入力して、内容を確認します。
!cat test.c
"+コード" を押して、セルを追加し、以下の様に入力して、コンパイルします。
!gcc -o test test.c
"+コード" を押して、セルを追加し、以下の様に入力して、実行をします。
!./test
これで、Colaboratory で、C プログラムの記述・コンパイル・実行ができました。
このように作成したノートブックをそのまま利用できれば便利です。
変更した内容は、Google ドライブに、自動的に保存されます。
手動で保存するには、メニューから、「ファイル -> 保存」 を実行します。
ファイル名を変更するには、メニューから、「ファイル -> 名前を変更」 を実行します。
行列積のプログラムは、こちらを参照ください。