函 或 节 节 节 节 节 变 ;S 变 或 configuration)。 (execution 或 ,Dg.x ,Db.x 节 是 ( 4.2.3 执 行 配 置 主 代 码 中 使 用 。 宿 取 __device__、__shared__ 通 过 获 __constant__ 量 的 地 址 而 获 得 的 地 址 仅 可 在 设 备 代 码 中 使 用 。 通 Dg Dg.z Db 的 无 节 节 Db, Ns, s>>> 形 * Dg.y 等 * Db.y * Db.z 等 量 的 地 址 仅 可 在 过 cudaGetSymbolAddress() 4.5.23 第 见 参 __device__ 取 的 获 ) __constant__ 对 __global__ Ns 的 4.5.1.5 配 置 定 义 将 用 于 在 该 设 备 上 执 行 函 数 的 网 格 和 块 的 维 度 , 以 及 相 关 的 流 ( 有 关 流 的 内 容 将 在 第 行 执
工 代 语 ,__device__ 函 对 块 驱 源 小 。 大 代 在 所 (inlined)。__noinline__ 函 (trip 。#pragma 语 限 节 对 对 4.2.4.5 warpSize 4.2.4.6 限 制 不 4.2.5 使 用 NVCC 进 行 编 译 包 试 图 获 取 任 何 内 置 变 量 的 地 址 。 允 许 为 任 何 内 置 变 量 赋 值 。 变 量 的 类 型 为 int, 此 warp 线 程 为 单 位 的 以 含 nvcc 是 nvcc 的 <strong>CUDA</strong> 可 简 化 种 一 编 译 过 程 的 编 译 器 驱 动 程 序 : 它 提 供 了 简 单 、 熟 悉 的 命 令 行 选 项 , 通 过 调 用 实 现 不 同 编 译 阶 段 的 工 具 集 合 来 执 行 它 们 。 基 本 工 作 流 在 于 将 设 备 代 码 与 宿 主 代 码 分 离 开 来 , 并 将 设 备 代 码 编 译 为 二 进 制 形 式 象 。 码 或 cubin 4.5.2 节 运 的 子 特 语 C 成 的 宿 主 代 码 将 作 为 需 要 使 用 其 他 工 具 编 译 的 生 所 码 输 出 , 或 通 过 在 最 后 一 个 编 译 阶 段 中 调 用 宿 主 译 器 直 接 作 为 对 象 代 码 输 出 。 编 )。 <strong>CUDA</strong> 程 序 可 忽 略 所 生 成 的 宿 主 代 码 , 使 用 用 应 API 序 程 动 cubin 上 加 载 并 执 行 备 设 象 , 也 可 链 cubin 所 生 成 的 宿 主 代 码 , 其 中 包 含 到 接 4.2.3 其 形 式 为 全 局 初 始 化 数 据 数 组 , 包 含 将 第 , 象 所 述 执 <strong>CUDA</strong> 置 语 法 转 换 为 必 要 的 配 行 启 动 代 码 的 转 换 , 目 的 在 于 加 载 和 启 动 编 译 后 的 各 内 核 ( 参 见 第 行 C++ 器 的 前 端 根 据 译 编 <strong>CUDA</strong> 则 处 理 规 法 C++ 。 宿 主 代 码 支 持 完 整 的 件 文 法 。 但 设 备 代 码 仅 支 nvcc 引 4.2.5.1 __noinline__ 认 情 况 下 数 总 是 内 联 要 内 联 该 函 数 。 函 数 体 必 须 位 于 所 调 用 的 同 一 个 文 件 内 。 默 数 限 定 符 可 用 于 指 示 编 译 器 尽 可 能 不 持 C++ C C++ 类 、 继 承 、 基 本 块 内 的 变 量 声 明 等 , 集 C++ 性 不 受 支 持 。 由 于 使 用 了 特 殊 法 了 两 个 编 译 器 指 令 , 下 面 几 节 将 加 以 介 绍 。 入 malloc() , 因 此 若 未 经 过 强 制 类 型 转 换 , 无 法 将 空 指 针 ( 例 如 则 规 回 的 空 指 针 ) 指 派 给 非 空 指 针 。 返 符 。 定 nvcc 于 关 流 和 命 令 选 项 的 详 细 说 明 将 在 其 他 文 档 中 提 供 。 作 4.2.5.2 #pragma unroll 认 情 况 下 , 编 译 器 将 展 开 具 有 已 知 行 程 计 数 小 循 环 令 可 用 于 控 制 任 何 给 定 循 环 的 展 开 操 作 。 它 必 须 紧 接 于 循 环 之 前 , 而 且 仅 应 用 于 该 循 环 。 可 选 择 在 其 后 接 一 个 数 字 , 指 定 默 count) 的 unroll 指 #pragma unroll 5 for (int i = 0; i < n; ++i) 次 小 <strong>CUDA</strong> 编 17 __noinline__ 函 数 具 有 指 针 参 数 或 者 具 有 较 大 的 参 数 列 表 , 则 编 译 器 不 会 遵 从 果 如 #pragma unroll 1 将 unroll 后 须 展 开 多 少 次 循 环 。 例 如 , 在 下 面 的 代 码 示 例 中 : 必 则 程 序 的 正 确 性 将 受 到 影 响 )。 阻 止 编 译 器 展 开 一 个 循 环 。 5, 5 将 展 开 环 循 n 序 员 需 要 负 责 确 保 展 开 操 作 不 会 影 响 程 序 的 正 确 性 ( 在 上 面 的 示 例 中 , 如 果 程 。 于 2.0 南 , 版 本 指 程 #pragma 在 果 如 未 指 定 任 何 数 据 , 如 果 其 行 程 计 数 为 常 数 , 则 该 循 环 将 完 全 展 开 , 否 则 将 不 会 展
- Page 1 and 2: 程 指 南 , 版 NVIDIA CUDA 计
- Page 3 and 4: 目 录 1 2 3 第 第 4 iii .......
- Page 5 and 6: 程 指 南 , 版 5.3 5.4 5.5 6.1
- Page 7 and 8: 核 (manycore) 众 程 指 南 ,
- Page 9 and 10: 渲 程 指 南 , 版 的 第 列
- Page 11 and 12: 程 指 南 , 版 变 (shared (intr
- Page 13 and 14: 所 ,CUDA (host) 假 memory)。 因
- Page 15 and 16: 提 (compute 由 capability) 。
- Page 17 and 18: 所 块 位 (constant (texture (tex
- Page 19 and 20: 编 的 ,C 标 限 (host) (function
- Page 21: 节 变 和 助 变 (implied (segme
- Page 25 and 26: 、2 分 位 是 的 节 (texture (
- Page 27 and 28: 列 数 (atomic ,atomicAdd() 将
- Page 29 and 30: Direct3D 互 。 节 和 函 节 ,D
- Page 31 and 32: 的 分 个 、cudaMallocPitch()
- Page 33 and 34: 定 类 ,cudaFilterModeLinear 是
- Page 35 and 36: mode) emulation 是 用 (printf() :
- Page 37 and 38: 节 函 。cuCtxPopCurrent() 上 (u
- Page 39 and 40: 。hostPtr copyParam.srcDevice = de
- Page 41 and 42: 创 填 程 指 南 , 版 上 上
- Page 43 and 44: 块 器 延 迟 。 的 (if、switc
- Page 45 and 46: warp , 当 半 块 中 的 线 程
- Page 47 and 48: 存 未 为 计 程 指 南 , 版
- Page 49 and 50: 字 字 存 存 ,type 计 (Common
- Page 51 and 52: 块 和 展 个 的 位 ,warp 块
- Page 53 and 54: 位 的 线 性 寻 址 。 字 程
- Page 55 and 56: 的 。 个 使 用 广 播 机 制
- Page 57 and 58: 节 位 数 之 节 节 或 (locali
- Page 59 and 60: 相 所 选 ,Csub 等 更 高 的
- Page 61 and 62: ,Muld() 将 的 将 相 的 程 指
- Page 63 and 64: 的 节 节 节 附 录 A 技 术
- Page 65 and 66: (round-towards-zero), : (denormaliz
- Page 67 and 68: 程 指 南 , 版 内 间 外 距
- Page 69 and 70: 后 后 后 后 程 指 南 , 版
- Page 71 and 72: 和 映 位 位 程 指 南 , 版
- Page 73 and 74:
位 程 指 南 , 版 处 位 计
- Page 75 and 76:
≤ 寻 的 × 是 × 是 节 个
- Page 77 and 78:
程 指 南 , 版 使 用 线 性