【问题标题】:How to calculate time loss for the data transmission from host to device in CUDA?如何计算CUDA中主机到设备的数据传输时间损失?
【发布时间】:2013-06-20 11:23:24
【问题描述】:

我打算为机器学习算法编写一个 cuda 内核,但我尝试比较从设备代码获得的效率和从主机到设备传输数据的时间损失。有什么工具可以帮助我,或者有什么准确的方法可以进行这种比较以得出 cuda 实现是否值得编码?

【问题讨论】:

    标签: cuda data-transfer date-arithmetic


    【解决方案1】:

    使用 CUDA 分析器。它绘制了漂亮的图表,代表您的程序及时执行的操作。这将显示传输时间和内核运行时间。一般来说,如果您的算法与数据大小相比进行大量计算,您会看到显着的提升。

    【讨论】:

    • 但是代码还没有实现,所以我尝试估计我花费的时间是否值得我获得的效率。
    • 数据使用 DMA 传输到卡。如果您的数据是大的连续表,那么它将与将它们从 RAM 复制到 GPU 一样快。这取决于您的 PCIExpress 速度、RAM 和 DMA 效率。再说一句。编写复制数据的代码并不耗时。您只需要在设备上分配内存 - cuda_malloc,并将数据复制到卡上,然后使用 cuda_memcpy 从卡中返回。使用测试和运行分析器进行不超过 20 分钟的编码。
    猜你喜欢
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多