30.04.2014 Views

NVIDIA CUDA 计算统一设备架构

NVIDIA CUDA 计算统一设备架构

NVIDIA CUDA 计算统一设备架构

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

(local<br />

(padding),<br />

块<br />

块<br />

是<br />

的<br />

块<br />

节<br />

个<br />

块<br />

:<br />

倍 个<br />

块<br />

的<br />

块<br />

(bank 访 conflict),<br />

(bank),<br />

址<br />

和<br />

块<br />

路<br />

BaseAddress 处<br />

的<br />

BaseAddress + width * ty + tx<br />

ty) 的<br />

<br />

Width<br />

线<br />

(tx, 一 种 全 局 存 储 器 一 般 访 问 模 式 是 索 引 为 外 另<br />

于 地<br />

cuMemAllocPitch() 函<br />

5.1.2.2 本 地 存 储 器<br />

维 数 组 中 的 一 个 元 素 大 小 的 倍 数 ; 二<br />

数 。<br />

么 对 于 该 数 组 的 访 问 就 越 有 效 率 。 参 考 手 册 中 介 绍 倍<br />

memory) 访<br />

应 的 填 充 那 数 和 相 关 的 存 储 器 复 制 函 数 使 程 序 员 能 够 编 写 不 依 赖 于 硬 件 的 代 码 , 以 分 配 符 合 这 些 限 制 条 件 的 数 组 。 相<br />

节<br />

实 现 存 储 器 合 并 : 位<br />

数 , 并 且 行 得 到 了 倍<br />

线 程 使 用 以 下 地 址 访 问 类 型 为 type*、 各<br />

width 度 为 宽 、<br />

warp 种 情 况 下 , 只 有 满 足 了 以 下 条 件 , 才 能 为 线 程 块 的 所 有 半 这 在<br />

warp 的 宽 度 是 半 块 程<br />

16<br />

16 来 说 , 这 也 就 意 味 着 , 宽 度 不 是 体 具<br />

16 的 数 组 在 分 配 时 的 宽 度 越 接 近 数 倍<br />

所 述 与 全 局 存 储 器 空 间 相 似 , 本 地 存 储 器 空 间 不 会 被 缓 存 , 因 此 本 地 存 储 器 的 访 问 成 本 与 全 局 存 储 器 一 样 高 。 但 由 于 它 们 在 定 义 上 是 基<br />

的 cudaMallocPitch()<br />

5.1.2.3 常 量 存 储 器<br />

4.2.2.4 由 某 些 自 动 变 量 分 配 , 如 第 仅 问<br />

每 个 线 程 的 , 因 而 访 问 总 是 会 合 并 。 于 存 储 器 空 间 会 被 缓 存 , 因 此 常 量 存 储 器 的 读 取 仅 需 在 缓 存 丢 失 时 读 取 一 次 设 备 存 储 器 , 否 则 只 需 读 取 常 量 缓 存 即 可 。<br />

warp<br />

warp<br />

度 一 样 快 。 成 本 随 着 所 有 线 程 读 取 的 不 同 地 址 的 数 量 增 加 而 线 性 增 加 。 我 们 建 议 , 使 整 个 的 所 有 线 程 都 读 取 相 同 的 地 址 , 而 不 仅 仅 是 保 证 各 半 中 的 所 有 线 程 都 读 取 相 同 的 地 址 , 因 为 未 来 速 的 器<br />

5.1.2.4 纹 理 存 储 器<br />

设 备 可 能 要 求 全 速 读 取 。 的<br />

warp 半 于 对<br />

的 所 有 线 程 来 说 , 只 要 所 有 线 程 都 读 取 同 一 个 地 址 , 从 常 量 缓 存 读 取 的 速 度 就 与 读 取 寄 存<br />

宽 要 求 , 但 不 涉 及 拾 取 延 迟 。 带<br />

(streaming 也 fetch),<br />

5.1.2.5 共 享 存 储 器<br />

理 存 储 器 空 间 会 被 缓 , 因 此 纹 理 拾 取 仅 需 在 缓 存 丢 失 时 读 取 一 次 设 备 存 储 器 , 否 则 只 需 读 取 纹 理 缓 存 纹<br />

从 全 局 存 储 器 或 常 量 存 储 器 读 取 设 备 存 储 器 的 方 法 相 比 , 通 过 纹 理 拾 取 读 取 设 备 存 储 器 可 能 是 一 种 更 有 与<br />

warp 。 纹 理 缓 存 已 为 二 维 空 间 位 置 而 优 化 , 因 此 读 取 相 邻 纹 理 地 址 的 同 一 个 可 即<br />

的 线 程 将 实 现 最 高 性<br />

于 共 享 存 储 位 于 芯 片 上 , 因 而 共 享 存 储 器 空 间 比 本 地 和 全 局 存 储 器 空 间 的 速 度 都 要 快 得 多 。 实 际 上 , 对 中 的 所 有 线 程 来 说 , 只 要 线 程 间 不 存 在 存 储 体 冲 突 问 共 享 存 储 器 的 速 度 就 与 访 问 寄 存 器 一 样 快 , 下 面 将 详 细 介 绍 相 关 内 容 。 由<br />

于 warp<br />

能 。 此 外 , 它 设 计 用 于 以 固 定 的 延 迟 执 行 流 式 拾 取<br />

DRAM 说 , 一 次 缓 存 命 中 将 减 少 是 就<br />

44 <strong>CUDA</strong><br />

但 若 一 个 储 器 请 求 的 两 个 地 址 落 入 同 一 个 存 储 体 内 , 就 会 出 现 存 储 体 冲 突 , 访 问 必 须 串 行 化 。 硬 件 会 在 必 要 时 将 存 在 存 储 体 冲 突 的 存 储 器 请 求 分 割 为 多 个 不 冲 突 的 请 求 , 此 时 有 效 带 宽 将 降 低 为 原 带 宽 除 以 分 离<br />

编<br />

5.4 的 替 代 方 法 , 详 见 第 势 优<br />

。<br />

实 现 , 得 到 更 高 效 的 带 宽 , 可 达 到 单 独 一 个 模 块 的 带 宽 的 n<br />

。<br />

这<br />

2.0 南 , 版 本 指 程<br />

为 了 获 得 较 高 的 存 储 器 带 宽 , 共 享 存 储 器 被 划 分 为 多 个 大 小 相 等 的 存 储 器 模 块 , 称 为 存 储 体<br />

n 储 体 可 同 时 访 问 。 因 此 , 对 落 入 存 些<br />

n 存 储 体 的 同 不<br />

地 址 的 任 何 存 储 器 读 取 或 写 入 请 求 都 可 同 时<br />

n 存 储 器 请 求 的 数 量 。 如 果 分 离 后 的 存 储 器 请 求 数 量 为 n, 就 可 以 说 初 始 存 储 器 请 求 导 致 了 的 后

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!