You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
,(i/n) 等<br />
和<br />
块<br />
块<br />
位 个<br />
个<br />
。<br />
而<br />
;:<br />
节<br />
、__logf(x)(<br />
等<br />
(arithmetic<br />
和<br />
节<br />
,__[u]mul24 将<br />
个<br />
位 位<br />
是<br />
个<br />
个<br />
第 5 章 性 能 指 南<br />
5.1 指 令 性 能<br />
<br />
<br />
<br />
执 读<br />
行 指 令 ; 块<br />
为<br />
块<br />
理 指 令 , 多 处 理 器 必 须 中 各 线 程 的 指 令 操 作 数 处<br />
中 各 线 程 写 入 结 果<br />
最 量<br />
<br />
允 最<br />
warp<br />
<br />
节<br />
intensity), 也<br />
warp 线 程 为 要<br />
许 线 程 调 度 程 序 尽 可 能 地 同 时 进 行 存 储 器 事 务 处 理 与 数 学 计 算 , 这 要 求<br />
取 warp<br />
而 , 有 效 的 指 令 吞 吐 量 取 决 于 额 定 指 令 吞 吐 量 以 及 存 储 器 延 迟 和 带 宽 。 可 通 过 以 下 方 法 最 大 化 指 令 吞 吐<br />
<br />
因<br />
每<br />
5.1.1 指 令 吞 吐 量<br />
小 化 吞 吐 量 较 低 的 指 令 的 使 用 ( 参 见 :<br />
);<br />
5.1.1<br />
线 程 执 行 的 程 序 具 有 较 高 的 运 算 强 度 第<br />
数 学 操 作 ; 量<br />
5.1.1.1 数 学 指 令<br />
就 是 说 , 让 每 个 存 储 器 操 作 对 应 大 :<br />
5.1.2 用 于 每 一 类 存 储 器 的 可 用 存 储 器 带 宽 的 使 用 ( 参 见 第 化 大<br />
);<br />
4<br />
<br />
<br />
<br />
16<br />
位 32<br />
单 整 位 个<br />
加<br />
节<br />
5.2 处 理 器 上 具 有 多 个 活 动 线 程 , 如 第 多 个<br />
述 。 所<br />
钟 周 期 , 用 于 : 型 加 法 ; 运 算 、 比 较 、 最 小 值 、 最 大 值 、 类 型 转 换 指 令 ; 时<br />
供 有 符 号 和 无 符 号 24<br />
整 型 乘 法 。 而 在 未 来 的 架 构 中<br />
型 乘 法 的 速 度 更 慢 , 因 整 型 乘 法 , 由 应 用 程 序 合 理 整<br />
warp 一 个 为 要<br />
出 一 条 指 令 , 多 处 理 器 需 占 用 : 发<br />
- 浮 点 加 法 、 乘 法 和 乘 度 精<br />
;<br />
另<br />
是<br />
的<br />
)。 请 参 见 附 录 B) 可 请<br />
时 钟 周 期 内 提<br />
这 些 转 换 。<br />
36 <strong>CUDA</strong> 编<br />
时 钟 周 期 ,<br />
时 钟 周 期 , 用 于 倒 数 、 平 方 根 倒 数<br />
B.2 第 见 参<br />
。<br />
16 乘 法 占 用 型 整<br />
但 __mul24<br />
__umul24(<br />
2<br />
在 4<br />
y) 提 块<br />
比 32<br />
我 们 建 议 您 设 计 两 套 内 核 , 一 个 使 用 __[u]mul24, 此<br />
32 使 用 普 通 的 个 一<br />
__sinf(x)、__cosf(x)、__expf(x) 占 B)。 录<br />
个<br />
。sinf(x)、cosf(x)、tanf(x)、sincosf(x)<br />
用 整 型 除 法 和 求 模 运 算 的 成 本 极 高 , 应 尽 可 能 避 免 使 用 , 或 在 可 能 的 情 况 下 替 换 为 位 运 算 : 如 如 调<br />
果 n<br />
他 函 数 要 占 用 更 多 的 时 钟 周 期 , 因 为 它 们 是 作 为 多 种 指 令 的 混 合 体 实 现 的 。 单 精 度 浮 点 平 方 根 是 作 为 倒 数 平 方 根 再 求 倒 数 实 现 的 , 而 非 先 求 倒 数 平 方 根 再 求 乘 积 , 因 为 只 有 这 样 才 能 其<br />
期 ( 请 参 见 附 周<br />
于 (i>>log2(n)), 价<br />
(i%n)<br />
于 (i&(n-1)); 价<br />
果 n<br />
常 量 , 则 编 译 器 将 执 行<br />
幂<br />
36 度 浮 点 除 法 要 占 用 精 单<br />
__fdividef(x, 周 期 , 但 钟 时<br />
20 速 度 更 快 的 版 本 , 只 需 占 用 了 供<br />
时 钟<br />
2.0 南 , 版 本 指 程<br />
为 0<br />
warp 大 给 出 正 确 结 果 。 因 而 , 一 个 穷 无<br />
32 用 占 将<br />
钟 周 期 。 时<br />
用 32<br />
时 钟 周 期