Вопрос

Я ищу несколько вводных примеров для OpenCL, которые иллюстрируют типы приложений, которые могут испытывать большие (например, 50x-1000x) увеличения скорости. Cuda имеет много хороших примеров, но я не нашел то же самое для OpenCL .

Хорошим примером может служить глобальная оптимизация сложных функций с помощью скопления частиц, имитация отжига, эволюционные алгоритмы, оптимизация колоний муравьев и т. д.

Это было полезно?

Решение

Вот несколько замечательных примеров в SDK от nvidia:

http://developer.nvidia.com/object/get-opencl.html

Другие советы

Алгоритмы, которые вы описываете, не являются ни простыми, ни вводными с точки зрения программирования на GPU. Причина того, что у CUDA есть примеры в этих областях, заключается в том, что они были достаточно длинными, чтобы люди разработали эти примеры. В настоящее время нет общедоступной версии OpenCL, работающей на графических процессорах. Как ATI, так и NVIDIA предлагают бета-версии своих драйверов OpenCL, но ATI поддерживает только вычисления процессора, а NVIDIA требует подписания NDA для получения. Проще говоря, OpenCL не существовал достаточно долго для разработки и демонстрации таких всеобъемлющих примеров.

Тем не менее, получить доступ к драйверам NVIDIA OpenCL несложно. Вы можете узнать, как это сделать, на их форумах здесь . Я предполагаю, что дистрибутив OpenCL содержит несколько примеров программ, которые помогут вам начать работу.

Это также означает, что у вас есть отличная возможность разработать некоторые из этих тестов и опубликовать свои результаты. Тогда люди будут ссылаться на вашу работу, а не вы ссылаетесь на их работу. Я не ожидал бы слишком много сюрпризов, хотя. Производительность OpenCL должна быть примерно такой же, как и производительность CUDA, как только она станет широко доступной и поддерживаемой.

Наша команда работает над алгоритмами и ускорением OpenCL, и мы хотели бы предложить статью

http: //www.cmsoft.com.br/index.php?view=article&catid=1:latest-news&id=247:opencl-simulated-annealing

в качестве примера реализации алгоритма имитации отжига для минимизации.

Вы можете попробовать следующие две книги:

Программирование массивно параллельных процессоров ... практический подход (NVIDIA) (главы 1 и 2)

Книга программирования OpenCL ... Параллельное программирование для многоядерных процессоров и графических процессоров (компоненты истории

И то, и другое подробно объясняет, почему была сделана разработка, и где можно найти истинные бонусы.

Хотя не уверен насчет бенчмаркинга, мне тоже не повезло.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top