#author("2018-10-23T14:15:06+09:00","default:pbcglab_user","pbcglab_user")
#author("2018-10-24T14:26:45+09:00","default:pbcglab_user","pbcglab_user")
*CUDAのBuilt-inベクトル型 [#pae431b9]
CUDAにはBuilt-inのベクトル型が多く定義されています.
元々GPUは3Dのコンピュータグラフィックスを扱うため,
4次元のベクトル型(3次元の同次座標やRGBの3色とアルファ値など)までが用意されています.

ベクトル型の作成のために,make_型名 という関数が用意されていますので,例えば,float4型の変数を作りたいときは,
 float4 a = make_float4(1.0f, 2.0f, 3.0f, 4.0f);
といったように定義します.

*ベクトル型の演算(CUDA 10.0) [#i86cde77]
(2018.10.24追記)

デフォルトではfloat3やfloat4といったベクトル型は,データ格納には使用可能ですが演算子が定義されていません.
ベクトル演算を行う時は"helper_math.h"をインクルードしてください.
("helper_math.h"内で"cuda_runtime.h"を読んでいるので"cuda_runtime.h"はインクルードしなくて良い)
"helper_math.h"はCUDA Samplesが入ったディレクトリのどこかにあります.

**変数の一覧 [#v9c4b155]

|変数名|1要素のバイト数|符号|型|h
|char1,char2,char3,char4|1|あり|整数|
|uchar1,uchar2,uchar3,uchar4|1|なし|整数|
|short1,short2,short3,short4|2|あり|整数|
|ushort1,ushort2,ushort3,ushort4|2|なし|整数|
|int1,int2,int3,int4|4|あり|整数|
|uint1,uint2,uint3,uint4|4|なし|整数|
|long1,long2,long3,long4|4 or 8(プラットフォーム依存)|あり|整数|
|ulong1,ulong2,ulong3,ulong4|4 or 8(プラットフォーム依存)|なし|整数|
|loglong1,longlong2|8|あり|整数|
|float1,float2,float3,float4|4|あり|浮動小数点数|
|double1,double2|8|あり|浮動小数点数|

**dim3 [#y07a23d0]
上記の他に特別な型として,dim3 があります.
dim3はグリッドやブロックなどのサイズ指定に用いられます.
基本的には uint3 ですが,指定されなかった要素が1で初期化されることが特徴です.

dim3のコンストラクタは次のように定義されています(関数修飾子などは除いています).
 dim3(unsigned int x = 1, unsigned int y = 1, unsigned int z = 1) : x(x), y(y), z(z) {}
 dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {}


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS