从发布的here幻灯片中,似乎只有在Linux内核版本4.14上支持通过调用malloc
或new
而不是Nvidia的cudaMallocManaged
来使用系统分配器或更新?...如果是这样,有没有办法查询Nvidia驱动程序或CUDA运行时,以了解系统分配器是否可用于正确分配内存块以在CUDA统一内存模型中使用?或者,如果检测到的操作系统不在白名单上,那么这是否需要保留操作系统/内核版本的白名单并回退到传统的cudaMallocManaged
?如果是后者,是否有人知道批准的操作系统版本白名单?
答案 0 :(得分:2)
所以我遇到了这个问题,因为我认为我的系统得到了支持,但事实并非如此。长话短说,因为这个“功能”似乎需要完美的兼容硬件和软件风暴,我坚持使用旧的API。我知道这可能不是你想要的答案。
如果您真的想使用malloc
或new
,我会说您的查询将是以下内容的组合:
uname
系统调用。deviceQuery
(或类似)以检查CUDA版本(8.0或更高版本)和GPU(查找大于或等于6.0的计算能力)。有关操作系统支持的更多信息,请访问:https://www.phoronix.com/scan.php?page=news_item&px=HMM-In-Linux-4.14。似乎内核版本4.14或更高版本应具有此功能。