Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
个<br />
,type<br />
位<br />
、64 位<br />
个<br />
或<br />
条<br />
位<br />
的<br />
位<br />
块<br />
出 指 令 。 发<br />
5.1.1.4 同 步 指 令<br />
,__syncthreads 将<br />
5.1.2 存 储 器 带 宽<br />
程 需 要 等 待 其 他 线 程 线 何 任 有 没 果 如<br />
存 储 器 带 宽<br />
<br />
<br />
<br />
<br />
<br />
若 在 与 将<br />
存 储 器 空 间 的 有 效 带 宽 主 要 取 决 于 访 问 模 式 下 面 几 节 将 介 绍 相 关 内 容 由 于 设 备 存 储 器 比 片 上 存 储 器 的 延 迟 更 高 、 带 宽 更 低 , 因 此 应 尽 量 减 少 设 备 存 储 器 访 问 。 典 型 的 编 程 模 式 是 将 来 自 设 备 存 储 器 的 数 据 转 入 共 享 存 储 器 , 也 就 是 说 , 使 一 个 块 的 所 有 线 程 各<br />
自 设 备 存 储 器 的 载 入 共 享 存 储 器 共 享 存 储 器 中 处 理 数 据 ; 来<br />
4 用 占<br />
warp 周 期 来 为 一 个 钟 时<br />
5.1.2.1 全 局 存 储 器<br />
:。<br />
块 中 的 其 他 所 有 线 程 同 步 , 使 各 线 程 可 安 全 地 读 取 由 其 他 线 程 写 入 的 共 享 存 储 器 位 置 ; 有 必 要 , 再 次 进 行 同 步 , 确 保 使 用 结 果 更 新 了 共 享 存 储 器 ; ;<br />
值 : 赋<br />
果 写 回 设 备 存 储 器 。 结<br />
__device__ type device[32];<br />
问 的 高 昂 成 本 时 更 是 如 此 。 访 器 储 存<br />
type data = device[tid];<br />
sizeof(type) 字 必<br />
的 等<br />
的<br />
全 局 存 储 器 空 间 不 会 被 缓 存 , 因 而 采 用 正 确 的 访 问 模 式 来 实 现 最 大 化 的 存 储 器 带 宽 尤 为 重 要 , 考 虑 到 设 备<br />
节<br />
或<br />
32 , 设 备 能 够 通 过 一 条 指 令 将 全 局 存 储 器 中 的 先 首<br />
或 128<br />
读 入 寄 存 器 。 对 于 下 面 这 样 的<br />
类<br />
或<br />
来<br />
struct __align__(8) {<br />
float a;<br />
float b;<br />
};<br />
对<br />
将 其 编 译 为 一 条 加 载 指 令<br />
sizeof(type) 使 须<br />
于 4、8<br />
16,<br />
type 为 型<br />
量 必 须 与 变<br />
sizeof(type) 致 ( 也 就 是 说 , 它 的 地 址 必 须 是 一 节<br />
倍 数 )。<br />
齐 要 求 , 举 例 如 下 :<br />
struct __align__(16) {<br />
对<br />
};<br />
float a;<br />
float b;<br />
float c;<br />
个<br />
4.3.1.1 于 对<br />
float2 的 内 置 类 型 , 如 绍 介<br />
float4,<br />
要 求 可 自 动 满 足 。 齐<br />
__align__(8) 结 构 体 来 说 , 可 通 过 使 用 对 齐 说 明 符 于 对<br />
__align__(16)<br />
使 编 译 器 实 施 大 小 和<br />
节 的 结 构 体 来 说 , 编 译 器 会 生 成 多 条 加 载 指 令 。 为 了 确 保 生 成 的 指 令 数 量 最 少 , 应 使 用 字<br />
__align__(16)<br />
struct __align__(16) {<br />
float a;<br />
float b;<br />
float c;<br />
float d;<br />
float e;<br />
};<br />
定<br />
: 或<br />
于 超 对<br />
条<br />
此 类 结 构 体 , 举 例 如 下 义<br />
位<br />
38 <strong>CUDA</strong> 编<br />
过 16<br />
加 载 指 令 , 而 的 加 载 指 令 。 位 于 全 局 存 储 器 中 的 变 量 的 地 址 , 或 由 驱 动 程 序 或 运 行 存 储 器 分 配 例 程 返 回 的 变 量 地 址 总 是 会 字 节 。<br />
:<br />
2 编 译 为 将 这<br />
非 5<br />
2.0 南 , 版 本 指 程<br />
256 到 至 少 齐 对<br />
时 API<br />
128<br />
32