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

位<br />

中<br />

,warp 块<br />

大 内 支<br />

设<br />

进 的<br />

,warp<br />

进<br />

值<br />

_FPU_SETCW(originalCW);<br />

_controlfp(originalCW, 0xfffff);<br />

(denormalized<br />

<br />

vote 函<br />

4.5.3 驱 动 程 序 API<br />

在 结 尾 处 使 用 以 下 代 码 , 恢 复 原 始 控 制 字 : 或<br />

设 备 模 拟 模 式 中 的 大 小 等 于 1。 因 而 同 。 在<br />

数 产 生 的 结 果 将 与 设 备 执 行 模 式 中 不<br />

number)。 这<br />

样 , 对 于 单 精 度 浮 点 数 , 与 计 算 设 备 不 同 ( 请 参 见 附 录 A), 宿 主 平 台 通 常 支 持 反 向 规 格 化 数 可 能 会 导 致 设 备 模 拟 和 设 备 执 行 模 式 下 存 在 显 著 差 异 , 因 为 某 些 计 算 可 能 会 在 一 种 模 式 下 产 生 有 穷 的 结 果 , 而 在 另 一 种 模 式 下 产 生 无 穷 的 结 果 。 同<br />

<strong>CUDA</strong> 驱<br />

中<br />

为 操 纵 对 象 的 函 数 。<br />

大<br />

对 象<br />

句 柄<br />

描 述<br />

API 程 序 动 驱<br />

种 基 于 句 柄 、 命 令 式 的 API: 一<br />

多 数 对 象 都 通 过 不 透 明 的 句 柄 引 用 , 此 类 句 柄 可 指 定<br />

表 4-1<br />

<strong>CUDA</strong> 了 总<br />

用 的 对 象 。 可<br />

表 4-1.<br />

序 驱 动 程 序 API<br />

中 可 用 的 对 象<br />

CUdeviceptr 储 器 存 堆<br />

存 储 器 的 指 针 备<br />

<strong>CUDA</strong> 数<br />

描 设<br />

CUdevice 备 设<br />

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

备 设<br />

4.5.3.1 初 始 化<br />

CUcontext 文 下 上<br />

CPU 同 于 等 致<br />

程<br />

CUmodule 块 模<br />

等 同 于 动 态 库 致<br />

CUfunction 数 函<br />

核<br />

4.5.3.2 设 备 管 理<br />

组 CUarray<br />

上 一 维 或 二 维 数 据 的 不 透 明 容 器 , 可 通 过 纹 理 参 考 读 取 备<br />

CUtexref 参 考 理 纹<br />

如 何 解 释 纹 理 存 储 器 数 据 的 对 象 述<br />

cuDeviceGetCount() 和<br />

提<br />

API 动 程 序 驱 在<br />

cuInit() 任 何 函 数 之 前 , 都 必 须 使 用 用 调<br />

初 始 化 。 行<br />

int deviceCount;<br />

cuDeviceGetCount(&deviceCount);<br />

int device;<br />

for (int device = 0; device < deviceCount; ++device) {<br />

CUdevice cuDevice;<br />

cuDeviceGet(&cuDevice, device);<br />

int major, minor;<br />

cuDeviceComputeCapability(&major, &minor, cuDevice);<br />

}<br />

: 性 属 其 索 检 便 以 ), 册<br />

cuDeviceGet()<br />

供 了 一 种 方 法 , 可 枚 举 这 些 设 备 和 其 他 功 能 ( 详 见 参 考 手<br />

4.5.3.3 上 下 文 管 理<br />

<strong>CUDA</strong> 上<br />

进<br />

中<br />

上<br />

在 该 上 下 文 被 销 毁 时 , 系 统 将 自 动 清 除 这 些 资 源 。 除 了 模 块 和 纹 理 参 考 之 类 的 对 象 之 外 , 每 个 上 下 文 还 有<br />

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

2.0 南 , 版 本 指 程<br />

CPU 类 似 于 文 下<br />

API 在 驱 动 程 序 。 程<br />

<strong>CUDA</strong> 的 所 有 资 源 和 操 作 都 封 装 在 行 执<br />

下 文 内 ,<br />

32 独 有 的 己 自<br />

Cudeviceptr 空 间 。 因 而 , 不 同 上 下 文 的 址 地<br />

引 用 不 同 的 存 储 器 位 置 。 将

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

Saved successfully!

Ooh no, something went wrong!