Главная » 2013»Октябрь»17 » Технология CUDA в примерах: введение в программирование графических процессоров
07:33
Технология CUDA в примерах: введение в программирование графических процессоров
Технология CUDA в примерах: введение в программирование графических процессоров - CUDA - вычислительная архитектура, разработанная компанией NVIDIA и предназначенная для разработчиков параллельных программ. В сочетании с развитой программной платформой архитектура CUDA позволяет программисту задействовать невероятную мощь графических процессоров для создания высокопроизводительных приложений, включая научные, инженерные и финансовые приложения. Книга написана двумя старшими членами команды по разработке программной платформы CUDA. Новая технология представлена в ней с точки зрения программиста. Авторы рассматривают все аспекты разработки на CUDA, иллюстрируя изложение работающими примерами. После краткого введения в саму платформу и архитектуру CUDA, а также беглого обзора языка CUDA C, начинается подробное обсуждение различных функциональных возможностей CUDA и связанных с ними компромиссов. Вы узнаете, когда следует использовать то ли иное средство и как писать программы, демонстрирующие поистине выдающуюся производительность. Издание предназначено для программистов, а также будет полезно инженерам, научным работникам и студентам вузов.
Название: Технология CUDA в примерах: введение в программирование графических процессоров Автор: Сандерс Дж., Кэндрот Э. Издательство: ДМК Пресс Год: 2013 Страниц: 232 Формат: PDF Размер: 13,1 МБ ISBN: 978-5-94074-889-2 Качество: Отличное
Содержание:
Предисловие Вступление Благодарности Об авторах Глава 1. Почему CUDA? Почему именно теперь? 1.1. О чем эта глава 1.2. Век параллельной обработки 1.2.1. Центральные процессоры 1.3. Развитие GPU-вычислений 1.3.1. Краткая история GPU 1.3.2. Ранние этапы GPU-вычислений 1.4. Технология CUDA 1.4.1. Что такое архитектура CUDA? 1.4.2. Использование архитектуры CUDA 1.5. Применение CUDA 1.5.1. Обработка медицинских изображений 1.5.2. Вычислительная гидродинамика 1.5.3. Науки об окружающей среде 1.6. Резюме Глава 2. Приступая к работе 2.1. О чем эта глава 2.2. Среда разработки 2.2.1. Графические процессоры, поддерживающие архитектуру CUDA 2.2.2. Драйвер устройства NVIDIA 2.2.3. Комплект средств разработки CUDA Development Toolkit 2.2.4. Стандартный компилятор Windows Linux Macintosh OS X 2.3. Резюме Глава 3. Введение в CUDA C 3.1. О чем эта глава 3.2. Первая программа 3.2.1. Здравствуй, мир! 3.2.2. Вызов ядра 3.2.3. Передача параметров 3.3. Получение информации об устройстве 3.4. Использование свойств устройства 3.5. Резюме Глава 4. Параллельное программирование на CUDA C 4.1. О чем эта глава 4.2. Параллельное программирование в CUDA 4.2.1. Сложение векторов Сложение векторов на CPU Сложение векторов на GPU 4.2.2. Более интересный пример Вычисление фрактала Джулиа на CPU Вычисление фрактала Джулиа на GPU 4.3. Резюме Глава 5. Взаимодействие нитей 5.1. О чем эта глава 5.2. Расщепление параллельных блоков 5.2.1. И снова о сложении векторов Сложение векторов на GPU с использованием нитей Сложение более длинных векторов на GPU Сложение векторов произвольной длины HaGPU 5.2.2. Создание эффекта волн на GPU с использованием нитей 5.3. Разделяемая память и синхронизация 5.3.1. Скалярное произведение 5.3.1. Оптимизация скалярного произведения (неправильная) 5.3.2. Растровое изображение в разделяемой памяти 5.4. Резюме Глава 6. Константная память и события 6.1. О чем эта глава 6.2. Константная память 6.2.1. Введение в метод трассировки лучей 6.2.2. Трассировка лучей на GPU 6.2.3. Трассировка лучей с применением константной памяти 6.2.4. Производительность версии с константной памятью 6.3. Измерение производительности с помощью событий 6.3.1. Измерение производительности трассировщика лучей 6.4. Резюме Глава 7. Текстурная память 7.1. О чем эта глава 7.2. Обзор текстурной памяти 7.3. Моделирование теплообмена 7.3.1. Простая модель теплообмена 7.3.2. Обновление температур 7.3.3. Анимация моделирования 7.3.4. Применение текстурной памяти 7.3.5. Использование двумерной текстурной памяти 7.4. Резюме Глава 8. Интероперабельность с графикой 8.1. О чем эта глава 8.2. Взаимодействие с графикой 8.3. Анимация волн на GPU с применением интероперабельности с графикой 8.3.1. Структура GPUAnimBitmap 8.3.2. И снова об анимации волн на GPU 8.4. Моделирование теплообмена с использованием интероперабельности с графикой 8.5. Интероперабельность с DirectX 8.6. Резюме Глава 9. Атомарные операции 9.1. О чем эта глава 9.2. Вычислительные возможности 9.2.1. Вычислительные возможности NVIDIA GPU 9.2.2. Компиляция программы для GPU с заданным минимальным уровнем вычислительных возможностей 9.3. Обзор атомарных операций 9.4. Вычисление гистограмм 9.4.1. Вычисление гистограммы на CPU 9.4.2. Вычисление гистограммы на GPU Ядро вычисления гистограммы с применением атомарных операций с глобальной памятью Ядро вычисления гистограммы с применением атомарных операций с глобальной и разделяемой памятью 9.5. Резюме Глава 10. Потоки 10.1. О чем эта глава 10.2. Блокированная память CPU 10.3. Потоки CUDA 10.4. Использование одного потока CUDA 10.5. Использование нескольких потоков CUDA 10.6. Планирование задач на GPU 10.7. Эффективное использование потоков CUDA 10.8. Резюме Глава 11. CUDA C на нескольких GPU 11.1. О чем эта глава 11.2. Нуль-копируемая память CPU 11.2.1. Вычисление скалярного произведения с применением нуль-копируемой памяти 11.2.2. Производительность нуля-копирования 11.3. Использование нескольких GPU 11.4. Переносимая закрепленная память 11.5. Резюме Глава 12, Последние штрихи 12.1. О чем эта глава 12.2. Инструментальные средства CUDA 12.2.1. CUDA Toolkit 12.2.2. Библиотека CUFFT 12.2.3. Библиотека CUBLAS 12.2.4. Комплект NVIDIA GPU Computing SDK 12.2.5. Библиотека NVIDIA Performance Primitives 12.2.6. Отладка программ на языке CUDA C CUDA-GDB NVIDIA Parallel Nsight 12.2.7. CUDA Visual Profiler 12.3. Текстовые ресурсы 12.3.1. Programming Massively Parallel Processors: A Hands-On Approach 12.3.2. CUDA U Материалы университетских курсов Журнал DR.DOBB'S 12.3.3. Форумы NVIDIA 12.4. Программные ресурсы 12.4.1. Библиотека CUDA Data Parallel Primitives Library 12.4.2. CULAtools 12.4.3. Интерфейсы к другим языкам 12.5. Резюме Приложение А. Еще об атомарных операциях А.1. И снова скалярное произведение А. 1.1. Атомарные блокировки А.1.2. Возвращаясь к скалярному произведению: атомарная блокировка А.2. Реализация хеш-таблицы А.2.1. Обзор хеш-таблиц А.2.2. Реализация хеш-таблицы на CPU А.2.3. Многонитевая реализация хеш-таблицы А.2.4. Реализация хеш-таблицы на GPU А.2.5. Производительность хеш-таблицы А.3. Резюме Предметный указатель