Thrust
- ThrustはCUDA用の並列アルゴリズムライブラリ。紹介とインストールはこちらを。
- このメモ日記を書いている今、CUDAのバージョン2.3はベータ版。インストールしたのは2.2
- リンクを張った記事では、CUDAが2.2、Thrustが1.0.0なので、それに合わせてインストールすることにする(CUDA 2.2 とThrust 1.1.0だと、記事のサンプルソース(ソート)は動かない)。
- Thrustの最新版は、1.1.0。これは、CUDA2.3に合わせた版なので、古い版のダウンロードも可能なURL(こちら)から、1.0.0をダウンロードする。
- Thrustのソートと、Cのアルゴリズム事典のshelsort.cのそれを比較してみよう
C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)
- 作者: 奥村晴彦
- 出版社/メーカー: 技術評論社
- 発売日: 1991/03/01
- メディア: 単行本
- 購入: 20人 クリック: 396回
- この商品を含むブログ (95件) を見る
-
- 奥村先生のshelsort.cは、データの型として "typedef int keytype;"宣言をしていますが、初心者の私は、よくわからないので、intに変えてやった関数をファイル保存して、それともども、Thrustのソートとでコンパイルします。
- すごく汚いソースですが
- 引数2つ。どちらも整数
- 第1引数は、整数ベクトルの要素数
- 第2引数は、Thrustのソースとshellsortとの速さ比べのために何回、ソートをした平均時間をとるかの、回数指定の引数
- 要点は、
- "/usr/local/cuda/include/"以下に置いてやった、Thrustの関数へのinclude宣言
- 引数2つ。どちらも整数
#include <thrust/host_vector.h> #include <thrust/device_vector.h> #include <thrust/copy.h> #include <thrust/sort.h>
-
-
- shelsort.cのinclude宣言と、乱数列ベクトル作成にメルセンヌ・ツイスターを使ったので、その宣言
-
// includes, project #include <cutil_inline.h> #include <mt19937ar.h> // includes, kernels #include <mt19937ar.c> #include <shelsort.c>
$ ./ThrustSortTest 10000000 5