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.

相<br />

所<br />

选<br />

,Csub 等<br />

更 高 的 通 用 矩 阵 乘 法 实 现 。 能<br />

的<br />

和<br />

的<br />

的<br />

程 指 南 , 版<br />

和<br />

的 的 的<br />

编<br />

矩<br />

的<br />

块<br />

的<br />

的<br />

节<br />

同 时 保 的 子 阵 , 它 的 行 索 引 ),<br />

第 6 章 矩 阵 乘 法 示 例<br />

6.1 概 述<br />

hA)<br />

wA) 的<br />

<br />

块<br />

程<br />

Csub<br />

线<br />

的<br />

为 (wA,<br />

(wB,<br />

wA)<br />

一 个 子 方 矩<br />

录 A)。 使<br />

block_size)<br />

积 C, 此 任 务 将 以 如 下 方 法 划 分 为 几 个 乘<br />

小 的 倍 数 ( 请 参 见 具 大<br />

阵 A<br />

B 阵 矩<br />

C 线 程 块 均 负 责 计 算 个 每<br />

计 算 维 度 分 别<br />

阵 Csub;<br />

:<br />

证 不 超 过 每 个 块 的 最 大 线 程 数 ( 附 示 维<br />

Csub 每 个 线 程 负 责 计 算 的 内<br />

一 个 元 素<br />

度 block_size<br />

。<br />

为 16,<br />

warp 块 的 线 程 数 是 个 每<br />

第 5.2<br />

如<br />

和<br />

的<br />

/ block_size)。<br />

为 block_size<br />

图 6-1<br />

通 过 这 种 方 法 安 排 计 算 , 我 们 就 利 用 了 速 度 较 快 的 共 享 存 储 器 , 节 省 了 大 量 全 局 存 储 器 带 宽 , 这 是 因 为 从<br />

(wA, 下 两 个 长 方 矩 阵 的 乘 积 : 维 度 为 以 于<br />

A<br />

方 阵 , 通 过 计 算 这 些 方 阵 的 乘 积 和 来 计<br />

源 , 这 两 个 长 方 矩 阵 被 分 割 为 多 维 度 每 个 乘 积 首 先 都 从 全 局 存 储 器 将 两 个 对 应 的 方 阵 载 入 共 享 存 储 器 , 使 用 一 个 线 程 载 入 各 矩 阵 的 一 个 元 素 , 然 后 由 各 线 程 来 计 算 乘 积 的 一 个 元 素 。 各 线 程 将 所 有 这 些 乘 积 的 结 果 汇 总 到 一 个 寄 存 器 中 , 完 成 后 , 将 结 果 写 入 全 局 存 储 器 。 资<br />

算 Csub。<br />

与 Csub<br />

(block_size, 维 度 为 ; 同<br />

B<br />

Csub , 它 与 阵 子<br />

有 相 同 的 列 索 引 。 为 了 适 应 设 备 的<br />

A 存 储 器 中 读 取 局 全<br />

B<br />

(wA 仅 为 数 次<br />

<strong>CUDA</strong> 编 写 本 示 例 时 , 我 们 仅 以 展 示 各 种 在 而<br />

程 原 则 为 目 标 , 所 以 在 实 际 应 用 中 , 请 探 索 比 本 示 例 性<br />

每 个 线 程 块 计<br />

一 个 子 矩<br />

内 的 每 个 线 程 计<br />

个 元 素 。 一<br />

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

53<br />

矩 阵 乘 法 块<br />

本 2.0<br />

算 C<br />

阵 Csub。<br />

算 Csub<br />

图 6-1.

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

Saved successfully!

Ooh no, something went wrong!