タグ別アーカイブ: R

OpenBLAS と ATLAS の性能を R 上で比較する

BLAS ライブラリにはいくつかの実装があり,x86 アーキテクチャに対して最適化された OpenBLAS や,オートチューニングを備えた ATLAS などが有名である.この記事では,R で計算を行う際にどの BLAS 実装を使うべきかを検討するために,R 標準の BLAS,参照 BLAS,OpenBLAS,ATLAS の4つについて簡単なパフォーマンス測定を行った結果を公開する. 続きを読む

R extension + CUDA で segmentation fault

R から .Call 経由で C 拡張を呼び出し,その中で CUDA の関数を呼び出すとき,1度目の .Call 呼び出しは成功するが,2度目は最初の CUDA 関数を呼び出した時点で segmentation fault が発生して,R 上で「memory not mapped」が表示された.

この場合,GPU のコンテキストバッファを明示的にクリアしてやる必要があるようだ. ソース: Using GPU in R scripts – possibly brainful

ソースにある cudaThreadExit 関数は NVIDIA のドキュメントですでに Deprecated 扱いになっているので,代替の cudaDeviceReset 関数を C 関数の最後で呼び出すようにして,問題は解決した.

原因は不明.R のメモリ領域を CUDA が横取りする?R を介さずに C だけで使っていた時は,問題にならなかったはず.