CUDAの画像処理はテクスチャが必須ですな
関連記事
- エヌビディアの時価総額300兆円超え AIブームうけ最速で達成 【2024年02月24日(土)】
- 【#CSHARP】System.Numerics.Vectorでグリングリン,AVXレジスタをぶん回したい 【2023年01月14日(土)】
- ビデオカードの大掃除をやってみた 【2012年02月09日(木)】
- Milkeyway@HomeのCUDA弾 【2010年12月14日(火)】
- グラボが届いた 【2010年10月14日(木)】
GPU上のグローバルメモリに,画像を流し込んで
- バイナリイメージにて
性能が出ない件(核爆
っちゅうか,CPUより遅いって何事じゃ,ぐるぅぁ~~ 😈
グローバルメモリとのやり取りには1往復600ナノ秒かかるとか何とか
これ,激しくアクセスすると,性能がた落ちは目に見えており...
共有メモリ16キロバイトを使おうかねぇ~
アルゴリズムが凄いことなるなぁ...
確実にバグるよなぁ...だったんすが
テクスチャメモリなるものをハケーン! 😎
こやつを使うと,キャッシュが効くおかげで,倍速以上は出るらしい...
っちゅうことで,32ビット画像にてテクスチャメモリを使ってみた
サンプルソースはこんな感じ?
m_ImageBufに32ビット画像(BGRA順)がバイナリイメージにて格納されておりまする
texture<signed int, 2, cudaReadModeElementType> g_tex; //テクスチャ変数の定義
cudaArray *g_cu_ary;
cudaChannelFormatDesc g_channelDesc;
//---------
void func()
{
g_channelDesc = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindSigned); //テクスチャサイズの定義
CUDA_SAFE_CALL(cudaMallocArray(&g_cu_ary, &g_channelDesc, m_Width, m_Height)); //テクスチャ用の領域確保
CUDA_SAFE_CALL(cudaMemcpyToArray(g_cu_ary, 0, 0, m_ImageBuf, m_ImageBufLen, cudaMemcpyHostToDevice)); //テクスチャ領域に画像を転送
CUDA_SAFE_CALL(cudaBindTextureToArray(g_tex, g_cu_ary, g_channelDesc)); //テクスチャにバインド
dim3 threads(16, 1, 1);
dim3 grid(16,1,1);
JobCoreTex<<<grid, threads>>>(); //カーネルの呼び出し
CUDA_SAFE_CALL(cudaFreeArray(g_cu_ary)); //テクスチャ向け領域を破棄
}
カーネルの中で,ピクセル値を取り出すときはint px = tex2D(g_tex, x, y);
にてOK!
これで,アホみたいに速くなったぞぉ~
あと,カーネル内で,構造体ポインタからのメンバ参照とか,繁盛にやっちゃだめっす
特にループの中で,メンバ参照とかやったら,確実に泣きます
for(int i = 0; i < 100; i++)
{
int datX = tmpRec->point.X;
int datY = tmpRec->point.Y;
int px = tex2D(g_tex, x + i, y);
}
とか?メイッパイ性能が落ちまする
CUDAコンパイラの最適化が甘い気がしますです
構造体ポインタのメンバはループの外で,
通常の変数に代入の上で,ループ突入したほうが幸せになれると思いますわん
っちゅうか,クラスやら構造体ポインタのメンバ参照に使う矢印(これ->ね)
正式名称,アロー演算子って言うっちゃ 😯
27年コンピュータ触ってきて,今日初めて知った(隕石爆

コメント
広島カープの羽月隆太郎容疑者、「ゾンビたばこ」使用の疑いで逮捕
【#総選挙】衆議院選挙 きょう公示 12日間の選挙戦へ
青森 スノーモービル乗るため入山の約10人と連絡取れず 遭難か
【#不発弾】宮崎市中心部の不発弾 17日に処理 避難指示や交通規制予定(26/1/17)
【総選挙】立民 公明 衆院選に向け新党結成で合意(26/1/15)
【大雪】大雪と雷及び突風に関する全般気象情報 第3号(26/1/1)
ブルーレイはオワコン? ソニー生産終了が意味する「次世代メディア」の失敗
ビジネスホテルで火事 1人遺体で見つかる 宿泊客4人けが 水戸
【#ドラセナ】御神木たる幸福の木(ドラセナ):花芽がほころびだした!すごい香りで部屋が満たされてる!