- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 CUDA 6.0 中尝试托管内存时,调用 cudaMallocManaged()
时出现操作不受支持
。
#include "cuda_runtime.h"
#include <stdio.h>
#define CHECK(r) {_check((r), __LINE__);}
void _check(cudaError_t r, int line) {
if (r != cudaSuccess) {
printf("CUDA error on line %d: %s\n", line, cudaGetErrorString(r), line);
exit(0);
}
}
int main()
{
int *c;
CHECK(cudaMallocManaged(&c, sizeof(int)));
*c = 0;
return 0;
}
GeForce GTX 750 Ti (Maxwell),使用compute_50、sm_50 使用 CUDA 6.0 进行编译。 Windows 7 64 位。使用驱动程序 335.23 (whql) 和 337.50 (beta) 进行测试。 Visual Studio 2012。尝试过 32 位调试和发布版本。
C:\rd\projects\cpp\test_cuda6\test_cuda6>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\bin\nvcc.exe" -gencode=arch=compute_50,code=\"sm_50,compute_50\" --use-local-env --cl-version 2012 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin" -I\C\common\inc -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" --keep-dir Release -maxrregcount=0 --machine 32 --compile -cudart static -DWIN32 -DNDEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MD " -o Release\kernel.cu.obj "C:\rd\projects\cpp\test_cuda6\test_cuda6\kernel.cu"
如果我将 cudaMallocManaged()
替换为 cudaMalloc()
,程序运行不会出现错误。
关于如何让 cudaMallocManaged()
工作有什么想法吗?
最佳答案
Tried 32-bit debug and release builds.
使用 64 位调试或发布版本。
J.1.4. System Requirements
Unified Memory has three basic requirements:
•a GPU with SM architecture 3.0 or higher (Kepler class or newer)
•a 64-bit host application and operating system, except on Android
•Linux or Windows
64 位主机应用程序意味着您无法编译 32 位调试或发布版本。
关于cudaMallocManaged() 返回 "operation not supported",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23600403/
我有以下两个几乎相同的示例代码。 code1.cu 使用 cudaMalloc 和 cudaMemcpy 处理设备/主机变量值交换。 code2.cu使用cudaMallocManaged,因此不需要
在Nvidia开发人员博客中:An Even Easier Introduction to CUDA,作者解释: To compute on the GPU, I need to allocate m
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有一个由主机设备生成的 Eigen 数组,我想通过 CUDA 的统一内存将其放入 GPU。我发现的大多数示例首先将指针传递给 cudaMallocManaged 并在那里分配内存,然后再启动数组。我
在 CUDA 6.0 中尝试托管内存时,调用 cudaMallocManaged() 时出现操作不受支持。 #include "cuda_runtime.h" #include #define CH
我正在尝试将 CUDA 托管内存与我通过构造函数创建的对象结合使用。 struct A { A(float x) : x(x) {} float x; } __global__ voi
我对 cudamallocmanaged 的疑问是,如果我 malloc N 个数字,在 GPU 完成对这些数字的操作(比方说扫描操作)后,我只需要数组中的最后一个数字,并且只访问主机中的这个数字
如果(在 C++ + CUDA 中)cudaMallocManaged() 用于在主机和 GPU 内存中分配一个共享数组,并且程序遇到(比如在主机代码中)exit(1),是否这会在 GPU 中永久留下
我最近一直在玩 CUDA,希望尝试一下统一内存模型。我尝试使用示例代码,奇怪的是,在启动内核时,似乎没有任何值在更新。从主机修改统一数据工作正常,但启动的内核根本不会修改统一数据。 我的显卡是 GTX
我有一个 C 代码,我想翻译该代码以使用 CUDA。 解释完整的问题会非常复杂和冗长,这就是我遇到问题的一部分。 现在的问题是:我需要创建四棵 AVL 树(要插入树中的数据是从文件中读取的(实际文件,
我下载了CUDA 6.0 RC,写了一个简单的程序来测试统一内存。但是当我运行到 cudaMallocManaged 函数时,我得到了一个 cudaErrorNotSupported 错误。我的GPU
我有一个书面代码,我试图修改它以使其使用 CUDA,但我遇到了很多麻烦,目前,我试图使我想成为内核函数的函数无效,但我得到了一些错误 这是我收到的错误列表: black_scholes.cu(54):
我正在通过 NVIDIA GeForce GT 650M GPU 为我创建的模拟实现多线程。为了确保一切正常,我创建了一些辅助代码来测试一切正常。有一次我需要更新一个变量 vector (它们都可以单
我有一个像这样使用 cudaMallocManaged 的 C++ 类: MyMatrix::MyMatrix(int new_rows, int new_cols, int padrr, int
我是一名优秀的程序员,十分优秀!