gpt4 book ai didi

cuda - NVIDIA GPU 使用设备内存 0x0 做什么?

转载 作者:行者123 更新时间:2023-12-02 17:30:21 25 4
gpt4 key购买 nike

一本 CUDA 书籍(CUDA by Example:通用 GPU 编程简介)中的示例似乎在初始化指针时从未使指针无效。

两个问题:

  1. GPU 是否使用 0x0(或整数 0)作为 NULL 指针?我们应该遵循 C/C++ 指针吗练习设备指针(例如初始化时将其置空)

  2. 在cudaFree之前我们需要检查指针是否为NULL吗?如果(devPtr)HANDLE_ERROR(cudaFree(devPtr));

有人说对于Fermi架构,0x0用于片上共享内存,看来使用时假设0x0不应该被使用的指针指向还是可以的。
http://forums.thedailywtf.com/forums/p/25369/273567.aspx

开普勒架构怎么样? GPU 对 0x0 地址做什么?

谢谢!

最佳答案

通常,您可以像对待主机指针一样对待 NULL 指针。回答您的问题。

  1. 是的。随意使用您在主机上使用的相同做法(随意无效)。

  2. 在释放 NULL 之前检查 NULL 是安全的,但不是必需的,因为 cudaFree(0) 实际上不会尝试释放任何内存。 (事实上​​,cudaFree(0) 通常用于初始化 CUDA 上下文!)我相信大多数现代 malloc 实现不会尝试释放零值指针。

关于cuda - NVIDIA GPU 使用设备内存 0x0 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12126252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com