gpt4 book ai didi

cuda - 任何Cuda函数调用都会返回cudaErrorMemoryAllocation

转载 作者:行者123 更新时间:2023-12-03 09:06:09 25 4
gpt4 key购买 nike

我想知道为什么在Internet上找到的所有简单Cuda代码示例都无法为我工作,而我发现即使是最简单的代码也会导致错误:

#include <stdio.h>

int main(int argc, char ** argv) {
size_t available, total;
cudaError_t err = cudaMemGetInfo(&available, &total);
if (err == cudaErrorMemoryAllocation) {
printf("cudaErrorMemoryAllocation");
} else {
printf("OK or not memory allocation error");
}
return 0;
}

上面的代码始终打印出“cudaErrorMemoryAllocation”。

这是此程序的cuda-memcheck测试的输出:
cudaErrorMemoryAllocation
========= CUDA-MEMCHECK
========= Program hit error 2 on CUDA API call to cudaMemGetInfo
========= Saved host backtrace up to driver entry point at error
========= Host Frame:C:\Windows\SYSTEM32\nvcuda.dll (cuD3D11CtxCreate + 0x118a92) [0x137572]
========= Host Frame:D:\Cuda\a.exe [0x1223]
========= Host Frame:D:\Cuda\a.exe [0x101c]
========= Host Frame:D:\Cuda\a.exe [0x901f]
========= Host Frame:C:\Windows\system32\KERNEL32.DLL (BaseThreadInitThunk + 0x1a) [0x1832]
========= Host Frame:C:\Windows\SYSTEM32\ntdll.dll (RtlUserThreadStart + 0x21) [0x5d609]
=========
========= ERROR SUMMARY: 1 error

平台 Windows 8 64位

编译器 Visual Studio 2008

计算功能 1.1(GeForce 8800 GT)

CUDA版本 5.5

最佳答案

在创建CUDA上下文时,会分配a lot of stuff,因此可能发生可用内存不足以对其进行初始化的情况。这可能解释了您收到的 cudaErrorMemoryAllocation 错误。

cudaMemGetInfo 不会抛出该特定错误,因此必须是其他错误:

Note that this function may also return error codes from previous, asynchronous launches.



堆栈跟踪中的 cuD3D11CtxCreate 也会创建一个CUDA上下文。

另外:如果您有 多个应用程序在竞争您的设备,则可能也是原因。

关于cuda - 任何Cuda函数调用都会返回cudaErrorMemoryAllocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21329311/

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