OpenCL中亦要注意volatile的使用

原创 2011年01月11日 23:41:00

在OpenCL或CUDA中,对全局共享变量的访问我们往往会忽略掉使用volatile,这在仅对其访问一次的时候不会有问题,但是对这个共享变量变量做第二次访问的话,那么它会被编译器优化,从而得到的一直是第一次被引用时的值。也就是说,其它线程对共享变量的修改,当前线程将不可见。

下面举一个OpenCL的简单的例子来描述这一情况:

 

在以上代码中,如果把volatile去掉,那么线程32到63这一warp将处于死循环。由于之前对flag写了1,因此在后面while(flag == 1);这句执行时,将一直为true;外部对flag的修改,此warp将无法看见。

No.7_5 OpenCL 同步——原子操作

当多个线程在不同处理器上执行,同时访问相同内存时会存在竞态条件,使用原子操作可以避免竞争。...
  • Bob_Dong
  • Bob_Dong
  • 2017年04月09日 18:21
  • 900

linux下显卡信息的查看

http://blog.csdn.net/wind19/article/details/17095541 lspci  | grep -i vga 这样就可以显示机器上的显卡信息,比如...
  • sunmenggmail
  • sunmenggmail
  • 2014年07月29日 16:57
  • 5159

OpenCL buffer使用及两个简单例子

摘要:在本节,我们主要介绍OpenCL中buffer的使用,同时提供了2个完整的例子,一个是图像的旋转,一个是矩阵乘法(非常简单,没有分块优化)。 在本节,我们主要介绍OpenCL中buff...
  • jaccen
  • jaccen
  • 2016年05月10日 22:31
  • 1329

举例解析Java中Volatile的作用

volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。...
  • xilove102
  • xilove102
  • 2016年09月05日 09:37
  • 499

如何正确使用volatile变量

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,...
  • SmuEdward
  • SmuEdward
  • 2017年01月17日 17:30
  • 632

volatile深入分析( 什么时候使用volatile)

原文:http://blog.csdn.net/vernonzheng/article/details/8201744 volatile 变量提供了线程的可见性,并不能保证线程安全性和原...
  • jinfeiteng2008
  • jinfeiteng2008
  • 2016年12月01日 17:16
  • 1806

【Java线程】volatile的适用场景

Volatile 变量具有 synchronized 的可见性特性,但是不具备原子性。这就是说线程能够自动发现 volatile 变量的最新值。 Volatile 变量可用于提供线程安全,但是只能应...
  • vking_wang
  • vking_wang
  • 2013年08月19日 17:32
  • 16866

opencl学习(六)——local memory使用

由于统一个workgroup中的所有work-item可以共用本地内存(local),也可以通过它进行同组work-item之间的通信,因此我们整理一下local memory的用法。 本地内存可以...
  • eric41050808
  • eric41050808
  • 2013年11月16日 11:26
  • 3457

Volatile 的使用场景及使用模式说明

参考文章:http://www.ibm.com/developerworks/cn/java/j-jtp06197.html
  • coffee_hc
  • coffee_hc
  • 2014年10月14日 10:05
  • 6161

volatile的适用场景(面试问题:volatile有什么作用)

把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。 原子性意味着个时刻,只有一个线程能够执行一段代码,这段...
  • hxpjava1
  • hxpjava1
  • 2017年02月15日 09:37
  • 626
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCL中亦要注意volatile的使用
举报原因:
原因补充:

(最多只允许输入30个字)