You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
注 册 。 消<br />
包<br />
初<br />
的<br />
返<br />
或<br />
size, stream[i]);<br />
for (int i = 0; i < 2; ++i) {<br />
cuFuncSetBlockShape(cuFunction, 512, 1, 1);<br />
int offset = 0;<br />
cuParamSeti(cuFunction, offset, outputDevPtr);<br />
offset += sizeof(outputDevPtr);<br />
cuParamSeti(cuFunction, offset, inputDevPtr);<br />
offset += sizeof(inputDevPtr);<br />
cuParamSeti(cuFunction, offset, size);<br />
offset += sizeof(size);<br />
cuParamSetSize(cuFunction, offset);<br />
cuLaunchGridAsync(cuFunction, 100, 1, stream[i]);<br />
}<br />
for (int i = 0; i < 2; ++i)<br />
cuMemcpyDtoHAsync(hostPtr + i * size, outputDevPtr + i * size,<br />
size, stream[i]);<br />
cuEventRecord(stop, 0);<br />
cuEventSynchronize(stop);<br />
float elapsedTime;<br />
cuEventElapsedTime(&elapsedTime, start, stop);<br />
cuEventDestroy(start);<br />
cuEventDestroy(stop);<br />
4.5.3.9 纹 理 参 考 管 理<br />
cuTexRefSetArray() 将<br />
texture texRef;<br />
的<br />
CUtexref cuTexRef;<br />
cuModuleGetTexRef(&cuTexRef, cuModule, “texRef”);<br />
指 绑<br />
cuTexRefSetAddress() 核 使 用 纹 理 参 考 从 纹 理 存 储 器 中 读 取 之 前 , 必 须 使 用 内 在<br />
理 参 考 绑 定 到 纹 理 。 纹<br />
块 cuModule<br />
定 义 如 下 的 纹 理 参 考 texRef: 含<br />
如 果 模<br />
cuTexRefSetAddress(NULL, cuTexRef, devPtr, size);<br />
数 绑<br />
texRef 面 的 代 码 示 例 将 检 索 下 则<br />
柄 : 句<br />
cuTexRefSetArray(cuTexRef, cuArray, CU_TRSA_OVERRIDE_FORMAT);<br />
4.5.3.10 OpenGL 互 操 作 性<br />
texRef 的 代 码 示 例 将 面 下<br />
devPtr 到 定<br />
的 线 性 存 储 器 : 向<br />
texRef 的 代 码 示 例 将 面 下<br />
<strong>CUDA</strong> 到 定<br />
组 cuArray:<br />
考 手 册 列 举 了 用 于 设 置 寻 址 模 式 、 过 滤 模 式 和 其 他 针 对 纹 理 参 考 的 标 记 的 各 种 函 数 。 在 将 纹 理 绑 定 到 纹 理 参 考 时 所 指 定 的 格 式 必 须 与 声 明 纹 理 参 考 时 指 定 的 参 数 相 匹 配 ; 否 则 纹 理 拾 取 的 结 果 将 无 法 确 定 。 参<br />
GLuint bufferObj;<br />
cuGLRegisterBufferObject(bufferObj);<br />
GLuint bufferObj;<br />
CUdeviceptr devPtr;<br />
int size;<br />
cuGLMapBufferObject(&devPtr, &size, bufferObj);<br />
成 : 完<br />
除 映 射 是 通 解<br />
操 作 性 。 之 互<br />
完<br />
的 设 备 存 储 器 地 址 读 取 或 写 入 缓 冲 对 象 : 回<br />
取<br />
34 <strong>CUDA</strong> 编<br />
cuGLInit() 使 用 须 必<br />
OpenGL 与 化 始<br />
先 必 须 将 一 个 缓 冲 对 象 注 册 到 <strong>CUDA</strong>, 首<br />
cuGLRegisterBufferObject() 能 进 行 映 射 。 可 通 过 才 后<br />
cuGLMapBufferObject() 完 成 后 , 内 核 即 可 使 用 册 注<br />
cuGLUnregisterBufferObject() , 可 使 用 的 成<br />
2.0 南 , 版 本 指 程<br />
过 cuGLUnmapBufferObject()