cuda

thrustのバグを見つけて直した話

thrustがasync対応していたのを先月見つけた。 in-neuro.hatenablog.com ドキュメントがまるで書かれていないところをコードを読み進めて試していたのだが、そこで不可解な動作を発見した。 以下のようなコードを書いたとする。thrustの関数を非同期に読んで…

nvccのホスト用コンパイラも意識すべき

nvccはホスト(CPU)側のコードを生成するのはホスト用のコンパイラ(gccとか)に任せており、これは--compiler-binder <path>で指定できる。 以下nvcc --helpから抜粋。 --compiler-bindir <path> (-ccbin) Specify the directory in which the host compiler executabl</path></path>…

thrustにasyncサポートが入っていた

thrustというライブラリがある。 thrust.github.io 直接使ったことがなくても、CUDAをインストールしたら付いてくるので知らずにインストールしている人は多いと思う。 これはCUDAをC++で使う上で最高レベルに便利なライブラリで、もはやこれ無しでCUDAプロ…

OpenGL + CUDA interopのコードを読む

しばらく前に、CUDAを使ってGPU上に作ったデータをそのままGPU上でpixelの配列にしてそのまま画面に描画しようとしていた。 cuda_practice/ising-show at master · ToruNiina/cuda_practice · GitHub 例えばこれなのだが。これは、isingモデルをシミュレーシ…

parallel linear BVH (LBVH) をCUDA+thrustで書いた

久々に少し非自明なことをCUDA+thrustでやった。大体動くようになるまでまる一日(半日+半日なので別のmetricsでは2日)かかった。 github.com BVHとはなんぞやという話は、以下の記事にとてもよくまとまっている。というか、多分この記事の著者は私のような…

CUDAでカーネル関数がスキップされる(ように見えた)

1ヶ月くらい、土日や夜の自由時間を主に使ってGPUを使ったレイトレを書いていた。この話もまとめたいな〜と思いながらダラダラしていたら1週間が経過してしまった。みんなどこから時間をひねり出しているんだ? 私以外の人々はその人生で一切ダラダラしない…