24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
||||||
1 | ||||||
OpenCL безразмерный буфер видеокарты RADEON HD687008.05.2016, 00:27. Показов 2448. Ответов 2
Метки нет (Все метки)
Имею проблему при загрузке массивов в буфер видеокарты под OpenCL (не путать с OpenGL).
На борту видео всего 1 Гиг, но умудряюсь записать туда 2,5 Гига прежде чем на очередных 0,5 Гиг выдает ошибку переполнения. Куда она может это все заливать? Не понятно. Проверяю размер программы в памяти - размер меняется только на величину выделенных мной динамических массивов. Даже ни на полгига лишних не добавиться. Значит размещение буферов OpenCL в памяти хоста исключается. Тестирую записанные данные после освобождения динамического массива из которого копировал данные - все 5 блоков по 0,5 Гиг целые. Кусок кода которым это делаю:
Утечек памяти не наблюдал (сложно не заметить утекшие 1,5 Гига) Инфо о карте памяти: Кликните здесь для просмотра всего текста
Device Type: CL_DEVICE_TYPE_GPU
Device ID: 4098 Max compute units: 14 Max work items dimensions: 3 Max work items[0]: 256 Max work items[1]: 256 Max work items[2]: 256 Max work group size: 256 Preferred vector width char: 16 Preferred vector width short: 8 Preferred vector width int: 4 Preferred vector width long: 2 Preferred vector width float: 4 Preferred vector width double: 0 Max clock frequency: 900Mhz Address bits: 32 Max memory allocation: 536870912 Image support: Yes Max number of images read arguments: 128 Max number of images write arguments: 8 Max image 2D width: 16384 Max image 2D height: 16384 Max image 3D width: 2048 Max image 3D height: 2048 Max image 3D depth: 2048 Max samplers within kernel: 16 Max size of kernel argument: 1024 Alignment (bits) of base address: 2048 Minimum alignment (bytes) for any datatype: 128 Single precision floating point capability Denorms: No Quiet NaNs: Yes Round to nearest even: Yes Round to zero: Yes Round to +ve and infinity: Yes IEEE754-2008 fused multiply-add: Yes Cache type: None Cache line size: 0 Cache size: 0 Global memory size: 1073741824 Constant buffer size: 65536 Max number of constant args: 8 Local memory type: Scratchpad Local memory size: 32768 Error correction support: 0 Profiling timer resolution: 1 Device endianess: Little Available: Yes Compiler available: Yes Execution capabilities: Execute OpenCL kernels: Yes Execute native function: No Queue properties: Out-of-Order: No Profiling : Yes Platform ID: 01ED1864 Name: Barts Vendor: Advanced Micro Devices, Inc. Driver version: 1084.4 (VM) Profile: FULL_PROFILE Version: OpenCL 1.2 AMD-APP (1084.4) Extensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing С одной стороны мне бы побольше памяти для использования, но с другой - опасаюсь за ее целостность.
0
|
08.05.2016, 00:27 | |
Ответы с готовыми решениями:
2
Radeon HD6870 (Накрылась) Radeon HD6870 vs GeForce GTX 560 OpenCL: clEnqueueReadBuffer не правильно считывает в буфер Отсутствие OpenCL на RADEON HD 6870 - но раньше был |
267 / 189 / 33
Регистрация: 15.01.2011
Сообщений: 681
|
|
08.05.2016, 00:57 | 2 |
запихнут невпихуемое не получится,выше головы не прыгнуть, ось не используемую память скидывает в своп, также есть есть очереди и прочие дела, на диск, разные ос делают по разному но смысл не меняется.
0
|
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
||||||
08.05.2016, 11:24 [ТС] | 3 | |||||
ssXXss, теоретически, закон сохранения должен работать.
У меня 16 Гиг оперативы в компе. Своп вообще выключаю. Поэтому освобождение памяти в своп исключается. Если распределяю память под OpenCL в хосте, то вижу как растет объем занимаемой программой памяти. А тут нет. Могу попробовать сожрать всю доступную память в хосте, а потом опять залить данные в видеокарту. На случай если система не регистрирует эту утечку, то перекрытие в памяти сам обнаружу. Система Windows 7 pro 64. Добавлено через 2 часа 4 минуты нашел утечку добавив всего:
Разница как раз на все 2,5 Гига. Но эта память никому не принадлежит (так по крайней мере считают надстройки по мониторингу памяти Windows) Тогда получается, что в видеокарту вообще ничего не попадает? В документации по OpenCL на эту тему вообще ничего не нашел. Есть знатоки этого вопроса?
0
|
08.05.2016, 11:24 | |
08.05.2016, 11:24 | |
Помогаю со студенческими работами здесь
3
Поддержка OpenCL AMD на видеокарте ATI Radeon HD 6370M Замена видеокарты ATI Radeon HD 4600 Series (1024 МБ) на PCI-E Asus AMD Radeon HD7870 2048MB 256bit GDDR5? Что лучше? PowerColor PCI-Ex Radeon HD6870 2048MB GDDR5 (256bit) или Gainward PCI-Ex GeForce GTX 570 Golden Sample GLH 1280MB GDDR5 (320bit) ? Название видеокарты изменилось с ATI Radeon HD 4720 на ATI Radeon HD 4600 Series Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |