30.04.2014 Views

NVIDIA CUDA 计算统一设备架构

NVIDIA CUDA 计算统一设备架构

NVIDIA CUDA 计算统一设备架构

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

位<br />

程 指 南 , 版<br />

处<br />

位<br />

计<br />

计<br />

计<br />

和<br />

和<br />

的<br />

的<br />

>= val) ? 0 : (old+1)),<br />

& val), 并<br />

C.1.5<br />

atomicMax()<br />

address 位 于 全 局 或 共 享 存 储 器 中 地 址 取 读<br />

int atomicMax(int* address, int val);<br />

unsigned int atomicMax(unsigned int* address,<br />

unsigned int val);<br />

位 处<br />

的 32<br />

字 old,<br />

算 old<br />

val<br />

存 储 器 的 同 一 地 址 中 。 这 三 项 操 作 在 一 次 原 子 事 务 中 执 行 。 该 函 数 将 返 回 old。 在<br />

最 小 值 , 并 将 结 果 存 储<br />

C.1.6<br />

atomicInc()<br />

address 位 于 全 局 或 共 享 存 储 器 中 地 址 取 读<br />

的 32<br />

字 old,<br />

unsigned int atomicInc(unsigned int* address,<br />

unsigned int val);<br />

位 处<br />

算 old<br />

val<br />

最 大 值 , 并 将 结 果 存 储<br />

C.1.7<br />

atomicDec()<br />

存 储 器 的 同 一 地 址 中 。 这 三 项 操 作 在 一 次 原 子 事 务 中 执 行 。 该 函 数 将 返 回 old。 在<br />

unsigned int atomicDec(unsigned int* address,<br />

unsigned int val);<br />

位 处<br />

val : (old-1)), 并<br />

== 0) | (old > val)) ?<br />

address 位 于 全 局 或 共 享 存 储 器 中 地 址 取 读<br />

的 32<br />

字 old,<br />

算 ((old<br />

将 结 果 存 储 在 存 储 器 的 同 一 地 址 中 。 这 三 项 操 作 在 一 次 原 子 事 务 中 执 行 。 该 函 数 将 返 回 old。 并<br />

C.1.8 atomicCAS()<br />

int atomicCAS(int* address, int compare, int val);<br />

unsigned int atomicCAS(unsigned int* address,<br />

unsigned int compare,<br />

unsigned int val);<br />

unsigned long long int atomicCAS(unsigned long long int* address,<br />

unsigned long long int compare,<br />

unsigned long long int val);<br />

位 位 处<br />

将 结 果 存 储 在 存 储 器 的 同 一 地 址 中 。 这 三 项 操 作 在 一 次 原 子 事 务 中 执 行 。 该 函 数 将 计<br />

== compare ? val :<br />

address 位 于 全 局 或 共 享 存 储 器 中 地 址 取 读<br />

的 32<br />

字 old,<br />

算 (((old<br />

回 old。 返<br />

C.2 位 逻 辑 函 数<br />

计<br />

比<br />

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

67<br />

将 结 果 存 储 在 存 储 器 的 同 一 地 址 中 。 这 三 项 操 作 在 一 次 原 子 事 务 中 执 行 。 该 函 数 将 返 计<br />

address 位 于 全 局 或 共 享 存 储 器 中 地 址 取 读<br />

的 32<br />

或 64<br />

字 old,<br />

算 (old<br />

C.2.1<br />

atomicAnd()<br />

并 较 并 交 换 )。<br />

old),<br />

结 果 存 储 在 存 储 器 的 同 一 地 址 中 。 这 三 项 操 作 在 一 次 原 子 事 务 中 执 行 。 该 函 数 将 返 回 old( 将<br />

64 全 局 存 储 器 支 持 有 只<br />

。 字<br />

int atomicAnd(int* address, int val);<br />

unsigned int atomicAnd(unsigned int* address,<br />

unsigned int val);<br />

位 处<br />

算 (old<br />

本 2.0<br />

address 位 于 全 局 或 共 享 存 储 器 中 地 址 取 读<br />

的 32<br />

字 old,<br />

回 old。

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

Saved successfully!

Ooh no, something went wrong!