GPU-CPU命令行缓冲区
目录
- 书上25页
- 命令行缓冲区是一个循环队列(在锁页内存上),且有大小限制(书上说是几千)
- CPU调用GPU干活,就会往队列屁股后添加指令
- GPU看到队列头有指令,就开始干活
- 受CPU限制,受GPU限制
-
受CPU限制:cpu繁忙,向命令行缓冲区写命令很慢,没有命令那gpu就闲下来了
-
受GPU限制:gpu繁忙,命令行缓冲区已经写满指令了,但gpu一条的没执行完,cpu想写指令也只能干等着
-
以上两个会导致加速比受影响,具体需要用阿姆达尔法则计算
-
-
cudaDeviceSynchronize()同步函数的底层实现, pdf第28页
- 命令行缓存区(锁页内存上)有一块区域(图中红色矩形),当gpu完成一个任务就会写入任务id到这块区域,当达到8时,cpu结束等待
展开查看:pdf第28页cudaDeviceSynchronize底层实现
- 命令行缓存区(锁页内存上)有一块区域(图中红色矩形),当gpu完成一个任务就会写入任务id到这块区域,当达到8时,cpu结束等待
-
cudaMemcpys函数是半双工的,零拷贝可以利用PCIe的全双工
- Zero-copy can be full duplex(全双工), but cudaMemcpys are only half-duplex(半双工).
展开查看:双工截图
- Zero-copy can be full duplex(全双工), but cudaMemcpys are only half-duplex(半双工).
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律