cudaMemcpy2D引數中pitch的含義

2021-06-27 21:29:40 字數 1544 閱讀 5830

1> pitch的含義

我們知道,對於記憶體的訪問來說,對準偏移量為2的冪(現在一般要求2^4=16)的位址能獲取更快的速度,而如果不對齊,可能你需要的資料需要更多的訪問次數才能得到。

為了滿足這個條件,對於乙個二維陣列來說(行優先row major),就希望每一行的開頭都滿足「對齊」,那麼如果一行的長度不規整,導致下一行開頭不在指定的位置,那就需要在每一行末尾進行填充(padding),從而使得每一行都對齊,這和bmp格式的畫素儲存是乙個道理。

pitch就是指 每一行的位元組數 + padding的位元組數 。

2 對於你的問題,對應於cpu端的pitch,就是sizeof(int) * 2,對應於gpu端的pitch,就是d_pitch。

c/c++ code?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

cudamemcpy2d( d_a,// 目的指標

d_pitch,// 目的pitch

bmp1,// 源指標

sizeof(int)*2,// 源資料pitch

sizeof(int)*2,// 資料拷貝寬度

2,// 資料拷貝高度

cudamemcpyhosttodevice);

cudamemcpy2d( bmp2,

sizeof(int)*2,

d_a,

d_pitch,

sizeof(int)*2,

2,

cudamemcpydevicetohost);

cocos 2d中CCUserDefault的使用

cocos 2d中的ccuserdefault的使用非常簡單,網上有一位大神 已經把這個類全部都注釋了,一目了然。非常感謝!下面介紹下這個類的傻瓜用法 1.在需要使用的類中的引入標頭檔案 include support ccuserdefault.h include stdio.h include ...

conv2d函式引數解釋以及padding理解

出處 函式 cnn在深度學習中有著舉足輕重的地位,主要用於特徵提取。在tensorflow中涉及的函式是tf.nn.conv2d。tf.nn.conv2d input,filter,strides,padding,use cudnn on gpu true,data format nhwc dila...

python中2d Python中的2D陣列

在python中建立二維陣列的最佳方法是什麼?我想要的是儲存這樣的值 x y z 這樣我就可以訪問像x 2 y 2 z 2 或x n y n z n 這樣的資料,其中n是可變的。我一開始不知道n有多大,所以我想在末尾附加值。a for i in xrange 3 for j in xrange 3 ...