日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CUDA 纹理的使用

發(fā)布時(shí)間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CUDA 纹理的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CUDA 紋理的使用

2013-01-25 10:09 閱讀(2782)評(píng)論(0)

紋理綁定有兩種,一個(gè)是綁定到線性內(nèi)存就是用cudaMalloc();cudaMemcpy();開辟的內(nèi)存空間,另一種是綁定到cudaMallocArray,?cudaMemcpyToArray開辟到的二維數(shù)組或者三維數(shù)組。

先說比較簡(jiǎn)單的就是綁定到cudamalloc開辟到的內(nèi)存空間。

首先是紋理聲明:關(guān)于紋理的聲明和綁定都要在cu文件進(jìn)行,在其他文件進(jìn)行會(huì)比較麻煩。

首先是開辟顯存和賦值給顯存。

首先是紋理聲明:

1、texture<float, 1, cudaReadModeElementType> texRef;

2、為顯存開辟空間,并初始化

cudaMalloc((void **)&rain_table,256*4*3);?

cudaMemcpy(rain_table ,table, 256*4*3,cudaMemcpyHostToDevice);

3、紋理綁定:

cudaBindTexture(0,texRef,rain_table );

4、_在global_ kernel函數(shù)使用紋理:

vterm = tex1Dfetch(texRef, 3*index);

5、解除紋理:

?cudaUnbindTexture(texRef);

?cudaFree(table)

?以上是一維紋理的使用,接著介紹二維紋理數(shù)組的使用:

?紋理聲明為二維紋理:

注:在1.x和3.x的卡使用紋理回比全局變量的要好,但2.x剛好相反,因?yàn)?.X有更大的L1緩存,所以2.x的卡建議不使用紋理,除非測(cè)出的速度要比使用全局變量的要快。?

1、texture<float, 2, cudaReadModeElementType> texRef;

?2、開辟顯存:

?cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc(32, 0, 0, 0,cudaChannelFormatKindFloat);
?cudaArray* cuArray;
?cudaMallocArray(&cuArray, &channelDesc, 3, 256); //為cuArray開辟空間
?cudaMemcpyToArray(cuArray, 0, 0, table,256*3*4,?????cudaMemcpyHostToDevice);???

?3、紋理綁定

cudaBindTextureToArray(texRef, cuArray, channelDesc);

?4、使用

?vterm = tex2D(texRef,? 0,index);

?5、解除綁定

?cudaBindTextureToArray(texRef,cuArray,channelDesc);

總結(jié)

以上是生活随笔為你收集整理的CUDA 纹理的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。