CUDA関数修飾子
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
CUDAでは修飾子によりその関数がGPU側,CPU側どちらで実行さ...
例えば,
#code(C){{
__device__
inline void func(int i)
{
// 処理
}
}}
のように__device__と指定することでGPU側(デバイス)で実行さ...
**修飾子の種類 [#y9f8694f]
修飾子の種類を実行場所と呼び出し元でまとめると,
|修飾子|実行場所|呼び出し元|h
|__device__|デバイス|デバイス|
|__global__|デバイス|ホスト|
|__host__|ホスト|ホスト|
その他注意事項は以下.
-修飾子を何も指定しなければ __host__ となる.
-__global__関数は返値が void でなければならない.
-__global__関数,<<< >>> オペレータによりスレッド数などを...
-__global__関数は非同期(asynchronous)なので,デバイスで実...
-__global__と__host__は同時指定できない.
-__device__と__host__は同時に指定することができる.
#code(C){{
__device__ __host__
void func(int i)
{
#if __CUDA_ARCH__ == 100
// compute capability 1.0用の処理
#elif __CUDA_ARCH__ == 200
// compute capability 2.0用の処理
#elif !defined(__CUDA_ARCH__)
// ホストでの処理
#endif
}
}}
この場合,ホスト関数,デバイス関数両方がコンパイル時に生...
__CUDA_ARCH__はホストとデバイス,および,compute capabili...
**インライン関数 [#m107547b]
compute capability 1.* では__device__関数は常にインライン...
compute capability 2.* ではコンパイラが適切と判断したもの...
ユーザが明示的にインライン化を指定したい場合は,__forcein...
逆にインライン化したくない場合は__noinline__修飾子を用い...
compute capability 1.* ではポインタ引数を持つ関数と引数が...
compute capability 2.* では__noinline__はほとんどの場合有...
終了行:
CUDAでは修飾子によりその関数がGPU側,CPU側どちらで実行さ...
例えば,
#code(C){{
__device__
inline void func(int i)
{
// 処理
}
}}
のように__device__と指定することでGPU側(デバイス)で実行さ...
**修飾子の種類 [#y9f8694f]
修飾子の種類を実行場所と呼び出し元でまとめると,
|修飾子|実行場所|呼び出し元|h
|__device__|デバイス|デバイス|
|__global__|デバイス|ホスト|
|__host__|ホスト|ホスト|
その他注意事項は以下.
-修飾子を何も指定しなければ __host__ となる.
-__global__関数は返値が void でなければならない.
-__global__関数,<<< >>> オペレータによりスレッド数などを...
-__global__関数は非同期(asynchronous)なので,デバイスで実...
-__global__と__host__は同時指定できない.
-__device__と__host__は同時に指定することができる.
#code(C){{
__device__ __host__
void func(int i)
{
#if __CUDA_ARCH__ == 100
// compute capability 1.0用の処理
#elif __CUDA_ARCH__ == 200
// compute capability 2.0用の処理
#elif !defined(__CUDA_ARCH__)
// ホストでの処理
#endif
}
}}
この場合,ホスト関数,デバイス関数両方がコンパイル時に生...
__CUDA_ARCH__はホストとデバイス,および,compute capabili...
**インライン関数 [#m107547b]
compute capability 1.* では__device__関数は常にインライン...
compute capability 2.* ではコンパイラが適切と判断したもの...
ユーザが明示的にインライン化を指定したい場合は,__forcein...
逆にインライン化したくない場合は__noinline__修飾子を用い...
compute capability 1.* ではポインタ引数を持つ関数と引数が...
compute capability 2.* では__noinline__はほとんどの場合有...
ページ名: