CUDA學習(四十一)

2021-09-21 08:17:36 字數 4614 閱讀 6023

表面功能:

在下面的部分中,boundarymode指定邊界模式,即處理超出範圍的表面座標的方式; 它等於cudaboundarymodeclamp(在這種情況下,超出範圍的座標被鉗位到有效範圍)或cudaboundarymodezero(在這種情況下超出範圍的讀取返回零並且超出範圍的寫入被忽略)或cudaboundarymodetrap, 在這種情況下,超出範圍的訪問會導致核心執行失敗。

表面物件api:

surf1dread():

templatet surf1dread(cudasu***ceobject_t surfobj, int x,

boundarymode = cudaboundarymodetrap);

使用座標x讀取由一維表面物件surfobj指定的cuda陣列。

surf1dwrite():

templatevoid surf1dwrite(t data,

cudasu***ceobject_t surfobj,

int x,

boundarymode = cudaboundarymodetrap);

將值資料寫入由座標x處的一維表面物件surfobj指定的cuda陣列。

surf2dread():

templatet surf2dread(cudasu***ceobject_t surfobj,

int x, int y,

boundarymode = cudaboundarymodetrap);

templatevoid surf2dread(t* data,

cudasu***ceobject_t surfobj,

int x, int y,

boundarymode = cudaboundarymodetrap);

使用座標x和y讀取由二維表面物件surfobj指定的cuda陣列

surf2dwrite():

templatevoid surf2dwrite(t data,

cudasu***ceobject_t surfobj,

int x, int y,

boundarymode = cudaboundarymodetrap);

將值資料寫入由座標x和y處的二維表面物件surfobj指定的cuda陣列。

surf3dread():

templatet surf3dread(cudasu***ceobject_t surfobj,

int x, int y, int z,

boundarymode = cudaboundarymodetrap);

templatevoid surf3dread(t* data,

cudasu***ceobject_t surfobj,

int x, int y, int z,

boundarymode = cudaboundarymodetrap);

使用座標x,y和z讀取由三維表面物件surfobj指定的cuda陣列。

surf3dwrite():

templatevoid surf3dwrite(t data,

cudasu***ceobject_t surfobj,

int x, int y, int z,

boundarymode = cudaboundarymodetrap);

將值資料寫入由三維物件surfobj在座標x,y和z指定的cuda陣列。

surf1dlayeredread():

templatet surf1dlayeredread(

cudasu***ceobject_t surfobj,

int x, int layer,

boundarymode = cudaboundarymodetrap);

templatevoid surf1dlayeredread(t data,

cudasu***ceobject_t surfobj,

int x, int layer,

boundarymode = cudaboundarymodetrap);

使用座標x和索引層讀取由一維分層表面物件surfobj指定的cuda陣列。

surf1dlayeredwrite():

templatevoid surf1dlayeredwrite(t data,

cudasu***ceobject_t surfobj,

int x, int layer,

boundarymode = cudaboundarymodetrap);

將值資料寫入由位於座標x和索引層的二維分層表面物件surfobj指定的cuda陣列。

surf2dlayeredread():

templatet surf2dlayeredread(

cudasu***ceobject_t surfobj,

int x, int y, int layer,

boundarymode = cudaboundarymodetrap);

templatevoid surf2dlayeredread(t data,

cudasu***ceobject_t surfobj,

int x, int y, int layer,

boundarymode = cudaboundarymodetrap);

使用座標x和y以及索引層讀取由二維分層表面物件surfobj指定的cuda陣列。

surf2dlayeredwrite():

templatevoid surf2dlayeredwrite(t data,

cudasu***ceobject_t surfobj,

int x, int y, int layer,

boundarymode = cudaboundarymodetrap);

將值資料寫入由座標x和y處的一維分層表面物件surfobj和索引層指定的cuda陣列。

surfcubemapread():

templatet surfcubemapread(

cudasu***ceobject_t surfobj,

int x, int y, int face,

boundarymode = cudaboundarymodetrap);

templatevoid surfcubemapread(t data,

cudasu***ceobject_t surfobj,

int x, int y, int face,

boundarymode = cudaboundarymodetrap);

使用座標x和y讀取由立方體貼圖表面物件surfobj指定的cuda陣列,並使用面對索引面。

surfcubemapwrite():

templatevoid surfcubemapwrite(t data,

cudasu***ceobject_t surfobj,

int x, int y, int face,

boundarymode = cudaboundarymodetrap);

將值資料寫入由座標x和y處的立方圖物件surfobj指定的cuda陣列,以及面索引面。

surfcubemaplayeredread():

templatet surfcubemaplayeredread(

cudasu***ceobject_t surfobj,

int x, int y, int laye***ce,

boundarymode = cudaboundarymodetrap);

templatevoid surfcubemaplayeredread(t data,

cudasu***ceobject_t surfobj,

int x, int y, int laye***ce,

boundarymode = cudaboundarymodetrap);

使用座標x和y讀取cubemap分層表面物件surfobj指定的cuda陣列,以及索引laye***ce。

surfcubemaplayeredwrite():

templatevoid surfcubemaplayeredwrite(t data,

cudasu***ceobject_t surfobj,

int x, int y, int laye***ce,

boundarymode = cudaboundarymodetrap);

將值資料寫入由座標x和y處的立方體貼圖分層物件surfobj指定的cuda陣列,以及索引層面部。

題解四十一

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意一格開始,每一步可以在矩陣中向左 右 上 下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進入該格仔。例如,在下面的3 4的矩陣中包含一條字串 bfce 的路徑 路徑中的字母用加粗標出 a ...

(四十一)auto命令

當我們給變數宣告時,通常採用int,或者double等整型或者浮點型別來宣告,例如int a double b 等。當我們遇見乙個常量,也可以用另外一種方法進行宣告。在c 11後方能使用。但是怎麼知道是不是c 11 那就是auto,例如 auto a 1 當使用auto的時候,編譯器會根據值自動賦予...

機器學習基礎(四十一) KNN

所謂 k 近鄰的數學表達,也即統計計數 再進行表決 的數學表達。y argmaxcj xi nk x i y i cj i 1,2,n j 1,2,k k 值的選擇會對 k 近鄰法的結果產生重大影響。如果選擇較小的 k 值,就相當於用較小的鄰域中的訓練例項 xi nk x 如果選擇較大的 k 值,將...