将统一的内存指针传递给内核会减慢程序的速度
passing a unified memory pointer to kernel slows down the program
在 CUDA 中,将统一内存指针传递给内核会减慢程序速度吗?
我让一个内核做一些事情,然后我 cudaMalloc 管理内核外的一些统一内存,然后将指向内核的指针作为参数传递。我用cuda_Event时间。内核从 1900 毫秒到 3000 毫秒运行得慢得多。
为什么传递指针需要太多?一个指针?
我应该如何加快程序速度?
将托管指针传递给内核本身对性能没有影响。但是,指针地址的受管内存的读取和写入可能会触发通过 PCI-e 总线进行的大量临时内存传输。这可能非常慢。
相关文章:
- 码头化的C++应用程序是否向后兼容早期的内核版本
- Visual Studio 如何在内核模式驱动程序项目中使用C++标准库?
- 内核模式驱动程序可以在任何进程上执行读取进程内存吗?
- 将统一的内存指针传递给内核会减慢程序的速度
- 内核模块或用户空间应用程序
- 简单的内核模式驱动程序
- 如何开发仅使用一个内核的程序
- 如何修复在 Linux 内核 SPI 驱动程序中始终无法验证的 SPI 驱动程序
- 用户土地访问内核土地驱动程序系统通知
- Ubuntu,如何找到内核工作繁重的程序热点?似乎kernel.kallsyms上的函数没有标记为用户空间函数的子级
- 一个包含多个OpenCL内核的程序相对于多个分别包含一个内核的程序的优势
- 用户空间和内核空间进程中的信号处理程序集
- Visual Studio 在调试内核驱动程序时无法启动调试会话
- 内核模块定期调用用户空间程序
- 如何在 C/C++ 程序中加载内核模块
- 内核驱动程序读取内存未发送整个字符串
- OpenMPI 上的线程应用程序仅在节点上使用 1 个内核
- C# 应用程序是否可以与内核驱动程序通信
- CUDA 程序比 CPU 程序慢,但内核更快
- 是否有等效的RegQueryInfoKey用于Windows内核模式驱动程序