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。