cudaMemcpy2DToArray 和 cudaMemcpy2DFromArray 中的 "pitch" 是什么
What's "pitch" in cudaMemcpy2DToArray and cudaMemcpy2DFromArray
我正在将已弃用的 cudaMemcpyToArray
和 cudaMemcpyFromArray
转换为 cudaMemcpy2DToArray
和 cudaMemcpy2DFromArray
。新的 API 调用 width
、height
和 pitch
,而不是 size
的弃用调用。 spitch
和dpitch
的描述对应的是“Pitch of source memory”和“Pitch of destination memory”。我想知道这些值是什么:数据项的大小,还是其他值?
更具体地说,如果我要复制 W*H
浮点数,我应该有 pitch=sizeof(float)
、width=W
、height=H
还是 pitch=sizeof(float)*W
、width=sizeof(float)*W
、height=H
或其他?
应该是:
pitch=sizeof(float)*W
width = sizeof(float)*W
height = H
以上内容适用于 cudaMemcpy2DToArray
,并假设您正在从主机传输到设备,这很可能涉及主机内存中的未分配分配作为源。
pitched 分配的间距 是二维分配的一行的字节大小,包括行尾的填充字节。例如,它是 cudaMallocPitch
返回的值。对于未倾斜的分配,它仍然是线的宽度,它由 W*sizeof(element)
给出,其中 2D 分配宽度由 W
个元素给出,每个元素的大小为 sizeof(element)
.
这个 and the link it refers to 可能也很有趣。
我正在将已弃用的 cudaMemcpyToArray
和 cudaMemcpyFromArray
转换为 cudaMemcpy2DToArray
和 cudaMemcpy2DFromArray
。新的 API 调用 width
、height
和 pitch
,而不是 size
的弃用调用。 spitch
和dpitch
的描述对应的是“Pitch of source memory”和“Pitch of destination memory”。我想知道这些值是什么:数据项的大小,还是其他值?
更具体地说,如果我要复制 W*H
浮点数,我应该有 pitch=sizeof(float)
、width=W
、height=H
还是 pitch=sizeof(float)*W
、width=sizeof(float)*W
、height=H
或其他?
应该是:
pitch=sizeof(float)*W
width = sizeof(float)*W
height = H
以上内容适用于 cudaMemcpy2DToArray
,并假设您正在从主机传输到设备,这很可能涉及主机内存中的未分配分配作为源。
pitched 分配的间距 是二维分配的一行的字节大小,包括行尾的填充字节。例如,它是 cudaMallocPitch
返回的值。对于未倾斜的分配,它仍然是线的宽度,它由 W*sizeof(element)
给出,其中 2D 分配宽度由 W
个元素给出,每个元素的大小为 sizeof(element)
.
这个