【问题标题】:passing a unified memory pointer to kernel slows down the program将统一的内存指针传递给内核会减慢程序的速度
【发布时间】:2017-11-17 07:58:21
【问题描述】:

在 CUDA 中,将统一内存指针传递给内核会减慢程序速度吗?

我让一个内核做一些事情,然后我 cudaMalloc 管理内核外部的一些统一内存,然后将指针作为参数传递给内核。我用 cuda_Event 来计时。内核的运行速度从 1900 毫秒到 3000 毫秒要慢得多。

为什么传递一个指针需要太多?指针?

我应该如何加快程序的速度?

【问题讨论】:

  • 可能是因为统一内存正在以一种或另一种方式复制与指针关联的数据。

标签: c++ memory cuda


【解决方案1】:

将托管指针传递给内核本身对性能没有影响。但是从指针地址的托管内存读取和写入可能会触发 PCI-e 总线上的大量 ad-hoc 内存传输。这可能会很慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2021-07-12
    • 1970-01-01
    相关资源
    最近更新 更多