30.04.2014 Views

NVIDIA CUDA 计算统一设备架构

NVIDIA CUDA 计算统一设备架构

NVIDIA CUDA 计算统一设备架构

SHOW MORE
SHOW LESS

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 />

function unit)、 一<br />

块<br />

块<br />

块<br />

节<br />

。Warp<br />

向 块<br />

,SIMT<br />

统<br />

,Tesla 架<br />

架<br />

(Scalar SP) Processor, 核<br />

向<br />

与<br />

块<br />

块<br />

块<br />

(on-chip)<br />

单<br />

允 宽<br />

,SIMT<br />

线<br />

在<br />

块<br />

个<br />

使<br />

语<br />

(transcendental)<br />

不<br />

(SIMD 而 行<br />

width),<br />

栅<br />

单<br />

,warp<br />

指<br />

块<br />

(cache<br />

第 3 章 GPU 实 现<br />

<strong>NVIDIA</strong><br />

GPU 和<br />

Tesla 架<br />

的 与<br />

计<br />

在 语<br />

GPU(<br />

GTX 280<br />

于 图 形 领 中 再 限 局<br />

核<br />

2006<br />

11<br />

Tesla 的 入 引<br />

图 形 和 计 算 架 构 扩 展 了 GPU, 一<br />

GPU<br />

3.1 具 有 片 上 共 享 存 储 器 的 一 组 SIMT 多 处 理 器<br />

, 其 强 大 的 多 线 程 处 理 器 阵 列 已 经 成 为 高 效 的 统 一 平 台 —— 同 时 适 用 于 图 形 和 通 用 并 行 计 算 应 用 程 序 。 域<br />

件 , 使 这 种 架 构 成 为 最 优 秀 的 超 级 计 算 平 台 。 软<br />

通 过 扩 展 处 理 器 和 存 储 器 的 数 量<br />

GeForce 盖 了 市 场 上 全 线 产 品 , 从 高 性 能 发 烧 级 覆 构<br />

Quadr 业 专<br />

Tesla<br />

GeForce 品 , 一 直 到 多 种 主 流 经 济 型 产 算<br />

A 录 附<br />

可 查 看 所 有<br />

<strong>CUDA</strong> 持 支<br />

GPU<br />

<strong>CUDA</strong> )。 其 计 算 特 性 支 持 利 用 表 列<br />

C<br />

GPU 直 观 地 编 写 中 言<br />

心 程 序 。<br />

Tesla<br />

上 架<br />

程<br />

(Streaming SM) Multiprocessors, 阵<br />

C 有 在 笔 记 本 电 脑 、 台 式 机 、 工 作 站 和 服 务 器 上 的 广 泛 可 用 性 , 配 以 具 构<br />

<strong>CUDA</strong> 程 能 力 和 编 言<br />

的 构 建 以 一 个 可 伸 缩 的 多 线 程 流 式 多 处 理 器 列 为 中 心 。 当 宿 序 调 用 内 核 网 格 时 , 网 格 的 块 将 被 枚 举 并 分 发 到 具 有 可 用 执 行 能 力 的 多 处 理 器 上 。 构<br />

8<br />

(special<br />

器 包 含 功 能 单 元 理 处 多<br />

标 量 处 理 器<br />

、 两 个 用 于 超 越 函 数 特 殊 个 多 线 程 指 令 单 元 以 及 片 上 享 存 储 器 。 多 处 理 器 会 在 硬 心<br />

个 线 程 块 的 线 程 在 一 个 多 处 理 器 上 并 发 执 行 。 在 线 程 块 终 止 时 , 将 在 空 闲 多 处 理 器 上 启 动 新 块 。 的 一<br />

<strong>CUDA</strong> 章 介 绍 一 这<br />

Tesla 型 与 模 程<br />

的 对 应 关 系 。 构<br />

共<br />

multiple-thread, 单<br />

warp 块<br />

步 。 快 速 的 栅 障 同 步 与 轻 量 级 线 程 创 建 和 零 开 销 的 线 程 调 度 相 结 合 , 有 效 地 为 细 粒 度 并 行 化 提 供 了 支 持 , 举 例 来 说 , 您 可 以 为 各 数 据 元 素 ( 如 图 像 中 的 一 个 像 素 、 语 音 中 的 一 个 语 音 元 素 、 基 于 网 格 的 计 算 中 的 一 同<br />

主 CPU<br />

的 <strong>CUDA</strong><br />

个 单 元 ) 分 配 一 个 线 程 , 从 而 对 问 题 进 行 细 粒 度 分 解 。<br />

令 、 多 线 程 ) 的 新 架 构 。 多 处 理 器 会 将 各 线 程 映 射 到 一 个 标 量 处 理 器 核 心 , 各 标 量 线 半 指<br />

可 随 意 分 支 、 独 立 执 行 。 都 包 含 连 续 的 线 程 , 递 增 线 也<br />

包 含 线 程 0。 中<br />

中 的 线 程 索 引 之 间 的 关 系 。 块<br />

次 准 备 发 出 一 条 指 令 时 的 活 动 线 程 每<br />

并 将 待 发 出 的 指 令 发 送 到 该 的 全 线 程 均 有 明 确 的 执 行 ,<br />

中 创 建 、 管 理 和 执 行 并 发 线 程 , 而 调 度 开 销 保 持 为 0。 它 可 通 过 一 条 内 部 指 令 实 件<br />

现 __syncthreads()<br />

障<br />

warp 块<br />

块 单<br />

块<br />

块 块<br />

个<br />

块<br />

SIMT(single-instruction, 管 理 运 行 各 种 不 同 程 序 的 数 百 个 线 程 , 多 处 理 器 利 用 了 一 种 称 为 了 为<br />

路 径 时 , 可 达 到 最 高 效 率 。 如 果 一<br />

的 线 程 通 过 独 立 于 数 据 的 条 件 分 支 而 分 散<br />

将 连 续<br />

第<br />

warp 调 度 和 执 行 线 程 , 这 样 的 线 程 组 称 为 、 理<br />

此 术 语 源 于 第 一 种 并 行 线 程 技 术 weaving。 。(<br />

warp<br />

程 使 用 自 己 的 指 令 地 址 和 寄 存 器 状 态 独 立 执 行 。 多 处 理 器 SIMT<br />

32 以 元<br />

并 行 线 程 为 一 组 来 创 建 、 管<br />

warp 是 一 个 以 可<br />

SIMT 一 半 或 第 二 半 。) 构 成 第 的<br />

的 各 个 线 程 在 同 一 个 程 序 地 址 一 起 启 动 , 但<br />

执 行 所 使 用 的 各 分 支 路 径 , 而 禁 用 未 在 此 路 径 上 的 线 程 , 完 成 所 有 路 径 时 , 线 程 重 新 汇 聚 到 同 一 执 行 路 径<br />

warp 个 多 处 理 器 指 定 了 一 个 或 多 个 要 执 行 的 线 程 块 时 , 它 会 将 其 分 成 一 为<br />

SIMT 由 并 ,<br />

元 进 行 调 度 。<br />

10 <strong>CUDA</strong> 编<br />

warp 分 割 为 块 将<br />

warp 法 总 是 相 同 的 , 每 个 方 的<br />

程 ID,<br />

warp 个 一<br />

SIMT 架<br />

第 2.1<br />

ID 了 线 程 绍 介<br />

warp 会 选 择 一 个 可 待 使 用 的 都 元<br />

warp 执 行 一 条 通 用 指 令 , 因 此 在 次 每<br />

部 32<br />

线<br />

个 warp<br />

彼 此 无 关 的 代 码 路 径 。 单 是<br />

warp 分 支 仅 在 。 下<br />

warp 现 , 不 同 的 出 内<br />

总 是 独 立 执 行 的 —— 无 论 它 们 执 行 的 是 通 用 的 代 码 路 径 还<br />

类 似 于 SIMD( 构<br />

指 令 、 多 数 据 ) 向 量 组 织 方 法 , 共 同 之 处 是 使 用 单 指 令 来 控 制 多 个 处 理 元 素 。<br />

warp 个 一 少<br />

cache 线 程 分 支 , 即 可 实 现 显 著 的 性 能 提 升 。 在 实 践 中 , 这 与 传 统 代 码 中 的 的 内<br />

2.0 南 , 版 本 指 程<br />

SIMD 主 要 差 别 在 于 项 一<br />

SIMD 织 方 法 会 向 软 件 公 开 组 量<br />

度<br />

SIMT<br />

令 指 定 单<br />

SIMT , 还 允 许 为 协 同 线 程 编 写 数 据 并 行 代 码 。 为 了 确 保 正 确 性 , 程 序 员 可 忽 略 码 代<br />

为 , 但 通 过 尽 量 减<br />

作 计 , 在 代 码 结 构 中 就 必 须 考 虑 其 大 小 。 另 一 方 面 , 向 量 架 构 要 求 软 件 操 作 存 储 器 合 并 , 并 手 动 管 理 分 支 。<br />

line)<br />

SIMD 程 的 执 行 和 分 支 行 为 。 与 线 一<br />

量 机 不 同<br />

许 程 序 员 为 独 立 、 标 量 线 程 编 写 线 程 级 的 并 行<br />

cache 似 : 在 以 正 确 性 为 目 标 进 行 设 计 时 , 可 忽 略 相 用<br />

的 大 小 , 但 如 果 以 峰 值 性 能 为 目 标 进 行 设

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

Saved successfully!

Ooh no, something went wrong!