首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
CUDA
CUDA编程
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
如果多个线程往同一个共享地址写float数值,怎么办呀?
加为好友
发送私信
在线聊天
rain7102
maggie
等级:
发表于:
2008-06-11 11:07:10
楼主
如果多个线程往同一个共享地址写float数值,此时不能用原子操作,大家有什么办法吗?
问题点数:
20
回复次数:
4
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
OpenHero
开勇,kelvin
等级:
发表于:
2008-06-11 12:58:03
1
楼 得分:
0
尽量避免线程之间这种访问……
ps:我的计算对精度没要求,只要整数就够了……
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wanezhiyuan
等级:
发表于:
2008-06-11 22:56:13
2
楼 得分:
0
这可不好说了,这个float变量在线程中还参与以后的计算么?还是只作为结果输出。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
rain7102
maggie
等级:
发表于:
2008-06-14 08:37:23
3
楼 得分:
0
这已经不是冲突的问题了,CUDA只保证一个写成功,其它线程的写被抛弃,
那么最终的结果肯定是错误的。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
darkstorm2111203
樟树
等级:
发表于:
2008-06-14 08:53:14
4
楼 得分:
0
如果所有线程计算结果都一样,只要加一个if(tid==0),让一个线程写就行了
否则会像楼上说的一样引起冲突
如果需要原子操作,如原子加一类,应该保存所有结果,再进行归约(或称缩减,reduction)操作
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友