cuda Unified Memory

cuda Unified Memory 会简化内存分配的代码编写量。

同时对于直接向gpu内存进行赋值,也可以获得很高的效率。

但是,记住,使用Unified Memory分配的内存,在进行kernel内核调用的时候,其性能是低下的。

在追求性能的时候,应该避免使用Unified Memory。

而Unified Memory的应用场景,一般也不会追求性能的。

而这里有一篇讨论的文件,可以参考:http://stackoverflow.com/questions/21986542/is-cudamallocmanaged-slower-than-cudamalloc


而本人此时:

预先利用cudaMallocManaged和cudaMalloc都分配sizoef(float) * 19200000

cuda 7.5

gpu 卡:titanx

然后进行简单加法操作:

__global__ void add(float *num) {
    int tid = blockDim.x * blockIdx.x + threadIdx.x;
    num[tid] += tid;
}

add<<<19200000 / 192, 192, 0, stream>>>(data);

结果:

cudaMallocManaged:耗时90ms.

cudaMalloc:耗时1ms.

性能相差很大

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值