CUDA 视频处理相关注意点

图像处理流相关问题:
1:异步并行时,cudaMemcpyAsync的缓冲区要用Pinned分配,直接用普通内存无效果:
Pinned memory (分页锁存器):
cuda运行时提供了使用分页锁定主机存储器(也称为pinned)的函数(与常规的使用malloc()分配的可分页的主机存储器不同):
cudaHostAlloc()和cudaFreeHost()分配和释放分页锁定主机存储器;
cudaHostRegister()分页锁定一段使用malloc()分配的存储器。

2在cudaMemcpyAsync后直接对目标变量进行操作会有一定几率出错

3当gpu处理时间与cpu读取时间相近时可以在host端上启动两个以上线程(或者更多数量–如果你喜欢的话)来将cpu读取时间掩盖掉,每个线程里面独自的逻辑线.

4如果CPU读取时间过长,GPU处理时间较短如,那么优化的时间是读写时间,GPU处理的时间被掩盖,而试图达到这点, 需要你至少启动2个CPU线程, 每个里面单独的一条逻辑线(读取文件, 处理, 回写),继续优化GPU就无意义了
举例子:如果你读写文件需要100ms,kernel需要10ms,上500次处理过程,而不是500 * 10ms,更长的时间能掩盖更短的(在合理的安排下)

5关于测试环境:你如果要测试. 得弄点真实的测试环境.例如你原本如果是传过来的视频帧, 例如从网络, 而不需要磁盘IO,那么请提供一个这样的环境,否则用从磁盘读写文件得到的效果无意义,测试环境么,必须上尽量一样的,你用个不同的东西测试, 最终生产的时候完全不是一回事.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值