?

Log in

No account? Create an account

diman_novik_ru


Новиков Дмитрий

Свободный художник


Entries by category: компьютеры

[sticky post]Felix, qui potuit rerum cognoscere causas
diman_novik_ru
Счастлив тот, кто смог познать суть вещей (Вергилий).

... И правила моего журнала ...Collapse )

OpenCL в Linux: Краткая инструкция для начинающих. Часть 1
diman_novik_ru

Или "OpenCL для чайников".

Часть 1

Пока не забыл, как я осваивал OpenCL, решил написать краткую инструкцию на русском языке. Мало ли, вдруг кому пригодится?

Тут я должен сперва сказать о том, что я не только ненавижу Microsoft, но и не люблю Intel за их отвратительные крепления охладителей процессоров, которые имеют тенденцию к самопроизвольному отстёгиванию (это я знаю не понаслышке - сам видел). К тому же, при одинаковых капитальных затратах компьютер на AMD получается мощнее компьютера на Intel.

Ну а раз у меня стоят процессоры AMD на мамках с наборами микросхем всё от того же AMD, то я и видеокарты покупаю от AMD, то есть Radeon, тем более, что количество потоковых процессоров на видеокарте с GPU Radeon всегда заметно больше, чем на видеокарте с GPU от nVidia, опять же при их равной или близкой стоимости. К тому же OpenCL - это нечто открытое и более менее стандартное, а nVidia точила свои GPU под некую закрытую их собственную технологию CUDA. nVidia, конечно, выпустила драйвера с поддержкой OpenCL (а куда деваться?) в 2009-ом году, но я предпочитаю использовать GPU Radeon, поскольку они изначально затачивались как раз под открытую OpenCL технологию. Люблю всё открытое и бесплатное, гы :).

В связи с вышеизложенным всё, что я буду тут писать, относится к использованию OpenCL на видеокартах Radeon, с использованием набора разработчика AMD APP SDK для Linux.
Интересно только программистам...Collapse )

OpenCL в Linux: Краткая инструкция для начинающих. Часть 2
diman_novik_ru




Или "OpenCL для чайников".

Часть 2

Начало здесь

Теперь, когда у нас есть уже текст программы на OpenCL, нам надо подготовить её к выполнению.

Первое, что нам для этого надо сделать — это задать, скажем так, среду исполнения, или как это зовётся в OpenCL — context.

Сначала создадим список необходимых нам свойств (пока одно) контекста:



cl_context_properties clCProp[3] =

{ // В списке сидят имена параметров и их значения

CL_CONTEXT_PLATFORM, (cl_context_properties)platformID,

0 // Нолик означает конец списка

};

Интересно только программистам...Collapse )