Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
节 来<br />
不<br />
(stream)<br />
后<br />
应<br />
实<br />
和<br />
;<br />
提 的 和 的<br />
将 的<br />
节 实<br />
环<br />
来 调 并<br />
节<br />
节<br />
数<br />
的<br />
操<br />
的<br />
实<br />
的 使 的<br />
和<br />
实<br />
应<br />
<br />
设 执<br />
设 备 与 设 备 间 双 向 存 储 器 复 制 的 函 数 置 存 储 器 的 函 数 。 某 些 设 备 还 可 在 分 页 锁 定 的 宿 主 存 储 器 和 设 备 存 储 器 之 间 执 行 复 制 , 且 与 内 核 执 行 并 发 地 执 行 此 类 复 制 操 行<br />
4.5.2.4 节<br />
。 如 果 使 用 的 是 运 行 时 API,<br />
则 请 参 请 ) 分 配 的 二 维 数 组 的 存 储 器 复 制 。 作<br />
流 的 定 义 方 法 是 创 建 流 对 象 , 并 将 其 指 定 为 内 核 启 动 和 宿 主 与 设 备 间 内 存 双 向 复 制 序 列 的 流 参 数 。 管<br />
的<br />
为<br />
第<br />
cudaGetDeviceProperties() 序 可 通 过 调 用 程 用<br />
deviceOverlap 查 检<br />
询 此 功 能 ; 如 果 使 用 的 是 驱 动 程 序 API, 查<br />
CU_DEVICE_ATTRIBUTE_GPU_OVERLAP 过 使 用 通 可<br />
用 cuDeviceGetAttribute()<br />
<strong>CUDA</strong> 。 此 功 能 当 前 仅 支 持 不 涉 及 询 查<br />
或 通 过 cudaMallocPitch()( 组<br />
4.5.2.3 第 见<br />
或 cuMemAllocPitch()( )<br />
4.5.3.6 第 见 参<br />
用 程 序 通 过 流 理 并 发 。 流 就 是 按 顺 序 执 行 的 一 系 列 操 作 。 另 一 方 面 , 不 同 的 流 可 与 其 他 流 乱 序 执 行 其 操 作 , 也 可 并 发 执 行 。 应<br />
API 了 如 何 通 过 运 行 时 述 描<br />
4.5.3.7 目 标 , 第 此 现<br />
API 了 如 何 通 过 驱 动 程 序 述 描<br />
现 此 目<br />
。 不 带 流 参 数 或 使 用 零 作 为 流 参 数 的 任 何 内 核 启 动 、 存 储 器 设 置 或 存 储 器 复 制 函 数 都 仅 能 在 此 前 的 操 作 完 成 标<br />
API<br />
始 包 括 作 为 流 部 分 的 操 作 , 而 在 此 类 函 数 完 成 之 前 , 无 法 启 动 任 何 后 续 操 作 。 无 流 参 数 的 内 核 启 动 , 缀 的 存 储 器 复 制 都 将 被 指 派 给 默 认 零 流 种 方 法 , 使 其 能 够 了 解 一 个 流 中 的 之 前 全 部 操 作 是 否 已 完 成 。 用 于 运 行 时 开 后<br />
无 Async<br />
有 操 作 完 成 。 类 似 地 , 用 于 运 行 所<br />
API 运 行 时 于 用<br />
cudaStreamQuery()<br />
用 于 驱 动 程<br />
应 用 程 序 提 供 了 一<br />
序 API<br />
cuStreamQuery()<br />
cudaStreamSnchronize()<br />
API 于 驱 动 程 序 用 和<br />
cuStreamSynchronize()<br />
了 一 种 方 法 , 可 显 式 强 制 要 求 运 行 时 等 待 流 中 之 前 的 应 用 程 序 能 够 强 制 要 求 运 行 时 等 待 所 有 流 中 的 所 有 之 前 设 备 任 务 完 成 。 为 了 避 免 不 必 要 的 减 速 , 最 好 将 这 些 供<br />
待 给 定 流 内 之 前 的 所 有 任 务 完 成 , 之 后 再 销 毁 流 , 并 将 控 制 返 回 给 等<br />
操<br />
时 API<br />
cudaThreadSynchronize()<br />
API 驱 动 程 序 于 用<br />
cuCtxSynchronize()<br />
API 序 宿 主 线 程 。 运 行 时 还 提 供 了 一 种 方 法 , 可 密 切 监 控 设 备 的 进 度 并 执 行 准 确 的 计 时 , 它 允 许 应 用 程 序 异 步 记 录 程 序 内 任 意 点 的 事 件 , 并 查 询 这 些 事 件 的 实 际 记 录 事 件 。 一 个 事 件 将 在 先 于 该 事 件 的 所 有 任 务 ( 也 可 以 是 给 定 流 中 程 动<br />
cuStreamDestroy()<br />
函 数 用 于 计 时 或 者 隔 离 失 败 的 启 动 或 存 储 器 复 制 操 作 。 用 于 运 行 时 API<br />
cudaStreamDestroy()<br />
用 于 驱<br />
4.5.2 运 行 时 API<br />
果 宿 主 线 程 在 来 自 不 同 流 的 两 项 操 作 之 间 调 了 分 页 锁 定 的 宿 主 存 储 器 分 配 、 设 备 存 储 器 分 配 、 设 备 存 局 禁 用 异 步 执 行 。 此 特 性 仅 为 调 试 提 供 , 不 应 用 于 使 生 产 软 件 更 可 靠 运 行 之 目 的 。 如<br />
/ 有 操 作 ) 均 已 完 成 时 记 录 。 零 流 中 的 事 件 将 在 设 备 完 成 来 自 所 有 流 的 之 前 任 务 作 后 记 录 。 所 的<br />
第 4.5.2.5<br />
4.5.2.1 初 始 化<br />
API 描 述 如 何 通 过 运 行 时 将 节<br />
4.5.3.8 目 标 , 第 此 现<br />
API 述 如 何 通 过 驱 动 程 序 描 将<br />
此 目 标 。 现<br />
<strong>CUDA</strong> 设 置 、 设 备 与 设 备 之 间 的 双 向 存 储 器 复 制 或 零 流 的 任 何 器 储<br />
, 则 这 两 项 操 作 无 法 并 行 执 行 。 作<br />
4.5.2.2 设 备 管 理<br />
<strong>CUDA</strong>_LAUNCH_BLOCKING 员 可 将 序 程<br />
变 量 设 置 为 1, 从 而 为 系 统 上 运 行 的 所 境<br />
有 <strong>CUDA</strong><br />
用 程 序 全<br />
cudaGetDeviceCount() 和<br />
提<br />
API 时 行 运<br />
存 在 显 式 初 始 化 函 数 ; 它 将 在 运 行 时 函 数 被 首 次 调 用 时 初 始 化 。 需 要 牢 记 , 在 计 时<br />
int deviceCount;<br />
cudaGetDeviceCount(&deviceCount);<br />
其 属 性 : 索<br />
24 <strong>CUDA</strong> 编<br />
运 行 时 调 用 发 生 时 , 或 解 释 来 自 第 一 次 运 行 时 调 用 的 错 误 码 时 , 即 进 行 初 始 化 。<br />
(timing)<br />
cudaGetDeviceProperties()<br />
供 了 一 种 方 法 , 用 于 枚 举 这 些 设 备 并 检<br />
2.0 南 , 版 本 指 程