Я пытаюсь выделить память для массива cuda mipmap 1D:
cudaMipmappedArray_t* cuMipArray{};
cudaExternalMemoryMipmappedArrayDesc cuTexDesc{};
cuTexDesc.extent = make_cudaExtent(texturePixels, 0, 0); //texturePixels = 2160*1080*4
cuTexDesc.formatDesc = cudaCreateChannelDesc<float>();
auto result = cudaMallocMipmappedArray(cuMipArray, &cuTexDesc.formatDesc,
cuTexDesc.extent, cuTexDesc.numLevels); //numLevels is 0
к сожалению, я получаю cudaErrorInvalidValue (1)
: почему?
РЕДАКТИРОВАТЬ
благодаря @ Роберту Кровелле, я знаю, что это потому, что maxTexture1DMipmap
слишком мало (32768).
cudaDeviceProp prop{};
cudaGetDeviceProperties(&prop, 0);
auto maxValue = prop.maxTexture1DMipmap;
Я попытался немного поднять его (65265) с prop.maxTexture1DMipmap = texturePixels;
, но cudaMallocMipmappedArray
снова терпит неудачу. Любая подсказка?