Почему я получаю CL_MEM_OBJECT_ALLOCATION_FAILURE?

Когда Вы хотите удалить элемент из массива, можно использовать , удаляют оператор, как таковой:

var numbers = [1,2,3,4,5];
delete numbers[3];
//numbers is now [1,2,3,undefined,5]

, Как Вы видите, элемент был удален, но дыру покинули в массиве, так как элемент был заменен неопределенный значение.

Таким образом, для работы вокруг этой проблемы, вместо того, чтобы использовать удаляют , используют соединение встык метод массива... как таковой:

var numbers = [1,2,3,4,5];
numbers.splice(3,1);
//numbers is now [1,2,3,5]

первый аргумент [1 113] соединение встык является ординалом в массиве [индекс], и вторым является число элементов для удаления.

5
задан simon.denel 12 April 2013 в 12:06
поделиться

2 ответа

clCreateBuffer не будет фактически создавать буфер на устройстве. Это имеет смысл, поскольку во время создания драйвер не знает, какое устройство будет использовать буфер (напомним, что в контексте может быть несколько устройств). Буфер будет создан на реальном устройстве при постановке записи в очередь или при запуске ядра, которое принимает буфер в качестве параметра.

Что касается ограничения в 16 МБ, вы используете последнюю версию драйвера (195.xx)? В таком случае вам следует связаться с NVIDIA либо через форум , либо напрямую.

3
ответ дан 14 December 2019 в 19:17
поделиться

Не забывайте, какую другую память вы использовали на устройстве (и, если это также ваша видеокарта, память, которую использует ваш дисплей).

(Is есть ли способ получить текущую доступную память, или самый большой фрагмент, или что-то подобное?)

2
ответ дан 14 December 2019 в 19:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: