Параллельные вычисления
Здесь можно купить книгу "Параллельные вычисления " в печатном или электронном виде. Также, Вы можете прочесть аннотацию, цитаты и содержание, ознакомиться и оставить отзывы (комментарии) об этой книге.
Автор: Евгений Николаев
Форматы: PDF
Издательство: Северо-Кавказский Федеральный университет (СКФУ)
Год: 2016
Место издания: Ставрополь
Страниц: 185
Артикул: 20499
Краткая аннотация книги "Параллельные вычисления"
Пособие составлено в соответствии с требованиями Федерального государственного образовательного стандарта высшего образования, учебным планом и программой дисциплины. Содержит курс лекций, охватывающий теоретические аспекты проектирования и разработки приложений для параллельных вычислительных систем. Основное внимание уделяется доступной технологии разработки параллельных приложений CUD А. Основные аппаратные средства, рассматриваемые в пособии, - графические процессоры. Предназначено для студентов, обучающихся по направлению 09.04.02 - Информационные системы и технологии и обладающих теоретическими знаниями в области проектирования высокопроизводительных приложений и практическими навыками программирования (предпочтительно языки С, С++, С#).
Содержание книги "Параллельные вычисления "
Предисловие
КУРС ЛЕКЦИЙ
1. Основы параллельных вычислений
2. Концепция программирования на GPU
3. Разработка приложений CUDA
4. Взаимодействие потоков
5. Текстурная память
6. Интероперабельность компьютерной графики
7. Программирование в системах с несколькими GPU
Заключение
Литература
Все отзывы о книге Параллельные вычисления
Отрывок из книги Параллельные вычисления
4. Взаимодействие потоков Мы собираемся решить ту же задачу, что и в предыдущей главе, то есть, имея два вектора на входе, получить третий вектор, содержащий их сумму. Но на этот раз вместо блоков мы воспользуемся нитями. Возможно, вам не понятно, какие преимущества дает использование нитей вместо блоков. Пока никаких достойных обсуждения преимуществ не видно. Однако параллельные нити внутри блока могут делать такие вещи, которые параллельным блокам не под силу. Начнем с двух заметных изменений. Раньше мы запускали N параллельных блоков с одной нитью в каждом: a d d < « N , l > » ( dev _ a, dev _ b, dev _ с ) ; а теперь запустим N нитей в одном блоке: a d d « < l , N » > ( dev _ a, dev _ b, dev _ с ) ; Изменить придется только способ индексации данных. Раньше входные и выходные данные индексировались в ядре с помощью номера блока. int tid = blockldx.x; Теперь же, поскольку блок всего один, индексировать нужно с помощью номера нити. int tid = threadldx.x; И это все, что нужно сделать для перехода от реализации с параллельными блоками к реализации с параллельными нитями. Для полноты приведем исходный текст целиком, выделив измененные строки полужирным шрифтом (рис. 4.1). Мы упомянули об аппаратном ограничении на количество блоков в одной сетке - 65 535 по каждому измерению. Существует также ограничение и на количество нитей в одном блоке. Точнее, оно не должно превышать величины в поле maxThreadsPerBlock в структуре, описывающей свойства устройства (см. лекцию 3). Для многих современных графических процессоров количество нитей в блоке не должно превышать 512. И как же воспользоваться подходом на основе нитей для сложения векторов длиннее 512? Для этого понадобится комбинация нитей и блоков. Как и раньше, мы должны будем внести два изменения: способ вычисления индекса внутри ядра и запуск самого ядра. Когда имеются несколько блоков и нитей, индексация напоминает стандартный метод перехода от двумерного индекса к линейному (рис. 4.2). - 9 3 -
Николаев Е. И. другие книги автора
С книгой "Параллельные вычисления" читают
Внимание!
При обнаружении неточностей или ошибок в описании книги "Параллельные вычисления (автор Евгений Николаев)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку