cudaMallocManaged () возвращает «операция не поддерживается»

Испытание управляемой памяти в CUDA 6.0 дает мнеoperation not supported при звонке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), скомпилированный с CUDA 6.0 с использованием compute_50, sm_50. Windows 7 64-битная. Протестировано с драйверами 335.23 (whql) и 337.50 (бета). 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 - -машина 32 - скомпилировать -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() за работой?

Ответы на вопрос(1)

Ваш ответ на вопрос