cuda流,多GPU编程,纹理操作

流:一系列将在GPU上按顺序执行的操作

步骤:

定义流:cudaStream_t s1;

创建流:cudaStreamCreate(&s1);

销毁流:cudaStreamDestory(s1);

 

多GPU编程

统一地址:

CPU和GPU分配使用统一的虚拟地址空间

驱动/设备可以判断数据所在的地址

GPU可以引用指针 另一个GPU上的地址

Host上的地址

两个方面

Peer-to-peer(P2P) memcopies

使用另一个GPU的地址 cudaDeviceEnablePeerAccess( peer_device, 0 )

允许current GPU访问peer_device GPU cudaDeviceCanAccessPeer( &accessible, dev_X, dev_Y)

检查是否dev_X可以访问dev_Y的内存返回0/1(第一个参数)

Peer-to-peer memcopy

cudaMemcpyPeerAsync(void* dst_addr, intdst_dev, void* src_addr, intsrc_dev, size_tnum_bytes, cudaStream_tstream)

两个设备之间拷贝字节

1)如果peer-access允许字节在最短的PCIe路径上传输

2)如果peer-access不允许CUDA驱动通过CPU memory传输

 

纹理操作

 纹理内存的优势:

1.它们是被缓存的,如果它们在texture fetch 中将提供更高的带宽

2.它们不会像全局或常驻内存读取时受内存访问模式的约束

3.寻址计算时的延迟更低,从而提高随机访问数据时的性能

4. 在一个操作中,包装的数据可以通过广播到不同的变量中 5.8-bit和16-bit的整型输入数据可以被转换成在范围[0.0,1.0]或[-1.0,1.0]的浮点数 

 

CPU/GPU协同

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波雅_汉库克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值