tutorial mac cuda

mac - cudaMallocManaged() devuelve "operación no admitida"



cuda tutorial (1)

Intentó versiones de depuración y liberación de 32 bits.

Use una versión de depuración o liberación de 64 bits.

De la documentación :

J.1.4. Requisitos del sistema

La memoria unificada tiene tres requisitos básicos:

• una GPU con arquitectura SM 3.0 o superior (clase Kepler o más reciente)

• una aplicación host de 64 bits y un sistema operativo, excepto en Android

• Linux o Windows

La aplicación de host de 64 bits significa que no puede compilar para una depuración o versión de lanzamiento de 32 bits.

Probar la memoria administrada en CUDA 6.0 me da una operation not supported cuando se llama a 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), compilado con CUDA 6.0 usando compute_50, sm_50. Windows 7 de 64 bits. Probado con los controladores 335.23 (whql) y 337.50 (beta). Visual Studio 2012. Intentos de depuración y versiones de 32 bits.

C: / rd / projects / cpp / test_cuda6 / test_cuda6> "C: / Archivos de programa / NVIDIA GPU Computing Toolkit / CUDA / v6.0 / bin / nvcc.exe" -gencode = arch = compute_50, code = / "sm_50, compute_50 / "--use-local-env --cl-versión 2012 -ccbin" C: / Archivos de programa (x86) / Microsoft Visual Studio 11.0 / VC / bin "-I / C / common / inc -I" C: / Archivos de programa / NVIDIA GPU Computing Toolkit / CUDA / v6.0 / include "-I" C: / Archivos de programa / 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 "

El programa se ejecuta sin error si reemplazo cudaMallocManaged() con cudaMalloc() .

¿Alguna idea sobre cómo hacer funcionar cudaMallocManaged() ?