社区
CUDA
帖子详情
哪些情况下应当使用cudaDeviceSynchronize()?
jiandingzhe
2012-10-13 10:08:32
cuda的很多调用都是异步的,会在执行完成之前就返回。那么假设这个简单的流程:
1:cudaMemcpy传数据到device。
2:调用内核操作这些数据。
3:cudaMemcpy把数据抓回host。
4:在host上使用这些数据。
这四步之间,哪些地方必须要cudaDeviceSynchronize()才能保证程序的正确性?或者都不用?
...全文
2202
2
打赏
收藏
哪些情况下应当使用cudaDeviceSynchronize()?
cuda的很多调用都是异步的,会在执行完成之前就返回。那么假设这个简单的流程: 1:cudaMemcpy传数据到device。 2:调用内核操作这些数据。 3:cudaMemcpy把数据抓回host。 4:在host上使用这些数据。 这四步之间,哪些地方必须要cudaDeviceSynchronize()才能保证程序的正确性?或者都不用?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liuliufen
2012-12-14
打赏
举报
回复
貌似都不用,如果涉及到多个内核函数运行的时候就需要了,内核函数中各个线程在运行的时候不是同步的,所以在计算完成的时候一般需要同步一下;
cc19851
2012-10-15
打赏
举报
回复
cudaDeviceSynchronize 是老版本的 cudaThreadSynchronize 吧,
如果是的话就不需要显示调用cudaDeviceSynchronize
cudaMemcpy 会隐式同步
关于何时
使用
cuda
Device
Sync
hronize
转自:http://blog.csdn.net/mathgeophysics/article/details/19905935 When to call
cuda
Device
Sync
hronize
why do we need
cuda
Device
Sync
hronize
(); in kernels with
device
-printf? Although
CUDA
~性能提升
对于应用程序的特定部分,哪些策略会产生最佳的性能提升取决于该部分的性能限制因素;例如,优化主要受内存访问限制的内核的指令
使用
不会产生任何显著的性能提升。因此,优化工作应该不断地通过测量和监控性能限制因素来指导(别瞎优化!),例如
使用
CUDA
profiler。此外,将特定内核的浮点操作吞吐量或内存吞吐量(取决于哪一个更有意义)与设备的相应峰值理论吞吐量进行比较,可以知道该内核有多少改进空间。 Maximize Utilization whaosoft aiot 不断分配和释放内存的应用程序在运行过程中,随着
CUDA
编程(七)全局内存的合理
使用
当读取全局内存以及仅
使用
L2缓存的
情况
时,一次数据传输指的就是将32字节的数据从全局内存(DRAM)通过32字节的L2缓存片段(cache sector)传输到SM。比如,第一个线程块中的线程束将访问x中的0~31个元素,对应128字节的连续内存,而且首地址一定是256字节的整数倍。因为这里 的每一对数据都不在一个连续的32字节的内存片段,故该线程束的访问将触发次 数据传输。合并访问指的时一个线程束对全局内存的一次访问请求(读或者写)导致最少数量的数据传输,否则称访问时非合并的。
【高性能计算】
CUDA
编程之性能测试与流的概念(教程与代码-3)
4
CUDA
高级概念的
使用
4.1 性能测试与报错处理 研究表明:如果块数量是GPU的流多处理器数量的两倍,则会给出最佳性能,不过,块和线程的数量和具体的算法实现有关。 块中的线程数量
应当
被设定等于设备属性中每个块所能支持的最大线程数量,但实际上这些数值只是作为一种基本的准则来说的。 常见的内核执行有3个瓶颈:卡在计算瓶颈上,卡在访存上和卡在延迟掩盖上。 具体显卡上通过Profiler分析。哪种资源先达到瓶颈,就减少这种资源的
使用
(计算或者访存),而增加另外一种,并非一味地增加计算,或者减少访存。 跨步式
【原理分析】GPU的性能瓶颈与解决方案
近年来,随着移动互联网、智能手环、手游的发展,物联网终端设备的普及率逐渐提升,对视频处理、图像识别等计算密集型任务的需求也越来越强烈。在这种
情况
下,高速并行计算能力(Graphics Processing Unit)显得尤其重要。为了加快处理速度,科技公司都选择部署基于图形处理器(Graphics Processing Unit,GPU)的系统,而设计更快、更省电的算法也是提升处理效率的一个关键因素。
CUDA
580
社区成员
2,919
社区内容
发帖
与我相关
我的任务
CUDA
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
复制链接
扫一扫
分享
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章