Столкнулся с тем, что карты 5ххх серии предоставляют лишь часть свободной памяти для использования в OpenCL. На 1Гб-ной EAH5750 доступно 256Мб, к примеру. Мне не удалось найти характеристик карт ATI с точки зрения OpenCL. В частности, мне нужна карта, где доступно хотя бы 512Мб. Но хотелось бы, конечно, взглянуть на таблицу данных по картам ATI -- количество ядер, объемы константной и локальной памяти и объемы глобальной памяти. Нет ли где подобной информации?
OpenCL: Параметры карт ATI.
[x]
Вход
.NET
AMD
ATI
BLAS
bruteforce
brute force
CUDA
GPGPU
gpgpu.ru
GPU Gems
Larrabee
MapReduce
MD5 crack
N-body
Nexus
NVidia
NVidia 8800
NVidia CUDA
NVidia G200
NVidia GTX280
NVidia Nexus
NVidia Tesla
OpenCL
search
signal processing
Sort
sparse matrices
Stream SDK
VISPL
VMWare
web
ВМиК МГУ
Москва
администрирование сайта
бенчмарки
блогосфера
вычисления
конкурсы
курсы
новости сайта
обработка изображений
подбор паролей
поиск
презентации
программирование GPU
работа
разное
сортировка
фильтрация трафика
численные методы
Navigation
Cвежие комментарии
-
1 week 5 hours ago
-
4 weeks 3 days ago
-
6 weeks 15 hours ago
-
7 weeks 5 days ago
-
9 weeks 2 days ago
-
9 weeks 3 days ago
-
9 weeks 3 days ago
-
9 weeks 3 days ago
-
9 weeks 6 days ago
-
10 weeks 4 days ago
Новое на форуме
Популярно
- Форумы NVidia CUDA: обзор за май (16,684)
- Как начать с самого начала работу с CUDA (14,373)
- GPGPU и видеокарты AMD (11,880)
- NVidia GTX 280, Tesla T10P (10,586)
- SGEMM на видеокарте и CPU, серия 6 (10,310)
Comments
кое-что можно посмотреть на этих слайдах: http://sa09.idav.ucdavis.edu/docs/SA09_AMD_IHV.pdf
P.S.: Объем глобалной памяти вообще-то должен быть равен (ну почти) физическому объему. В CAL, например, аллокация большого объема памяти не вызывает проблем, не знаю почему такое ограничение в OpenCL.
в CUDA тоже проблем нет (с соблюдением ограничений на индексы, ну можно трехмерный массив аллоцировать).
В-общем, это оказалось прямое требование спеков OpenCL (на 34-й странице 1.0.48).
У меня пока есть одна идея, почему это так. В теории мы можем иметь три *независимых* (аж от разных процессов, друг о друге не знающих) процесса
- копирование результатов (предыдущего) расчета с устройства
- (текущий) расчет
- копирование данных (следующего) расчета.
Впрочем, это же предельный лимит для одного объекта, можно 4 объекта аллоцировать?
Опять не успел сегодня попробовать, рутина заела.
5870 про себя пишет Max memory allocation: гигабайт. И памяти на карте - гигабайт.
М. Ок. А можно узнать производителя, версию OpenCL.dll, и активная ли это карточка?
У меня пишет только 256М...
Производитель - без разницы, они все одинаковые. По-моему гигабайт (но развинчивать корпус лень)
OpenCL.dll - от нвидиевского драйвера, но это пофиг, opencl.dll - это просто роутер к реальному dll
Stream SDK 2.01
Карта активна и primary
На самом деле, нужно конечно проверить, может ли оно столько аллоцировать одним куском (возможно что и нет), но вот прямо сейчас немножко не до грибов, вечером попробую не забыть.
Units count: 9
Max memory allocated: 268435456
Platform number is: 1
Platform is by: Advanced Micro Devices, Inc.
Слушайте, я вам наврал, перепутал вывод, взял не от того устройства
гигабайт - это на CPU (памяти для OpenCL рапортует 4 гига). А на обеих GPU (Nvidia, ATI) - 256M. Памяти - гиг на каждом GPU.
Вот в форумах нашел:
For every buffer object you can allocate 1/4th of the total memory (this is dictated by OpenCL spec, it is not an ATI limitation). For example, if you have 1Gb of total memory you can allocate a maximum of 256Mbytes, if you have 2Gbytes you can allocate 512Mbytes, and so on.
http://forums.amd.com/devforum/messageview.cfm?catid=390&threadid=127849
Я не понимаю, как именно это dictated by OpenCL spec, наизусть их не помню, но готов поверить на слово :)
Спасибо!
Злодеи они.
Ну я так понимаю, что можно 4 буфера такого размера аллоцировать. Вечером попробую.
Действительно можно. Но неудобно.