Модели и алгоритмы параллельных вычислений на графических процессорах и их применение в программных средствах автоматического тестирования графических приложений тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Капустин, Дмитрий Сергеевич
- Специальность ВАК РФ05.13.11
- Количество страниц 150
Оглавление диссертации кандидат наук Капустин, Дмитрий Сергеевич
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
ГЛАВА 1. Анализ абстрактных моделей параллельных вычислений с учетом особенностей графических процессоров
1.1. Анализ абстрактных моделей параллельных вычислений
1.1.1. Модель PRAM
1.1.2. Модель BSP
1.1.3. Модель LogP
1.2. Анализ особенностей структур программируемых графических процессоров общего назначения
1.2.1. Особенности структуры графических процессоров NVIDIA
1.2.2. Особенности структуры графических процессоров ATI
1.3. Анализ математических моделей графических процессоров и возможностей применения абстрактных моделей параллельных вычислений к графическим процессорам
1.4. Анализ возможностей использования графических процессоров в программных средствах автоматического тестирования приложений через интерфейс пользователя
Основные выводы
ГЛАВА 2. Разработка параметрической модели параллельных вычислений на графических процессорах
2.1. Параметрическая модель графического мультипроцессора на основе PRAM модели
2.2. Разработка модели абстрактного графического процессора
2.3. Разработка модели параллельных вычислений на графических процессорах
2.4. Использование модели для разработки, анализа и сравнения
параллельных алгоритмов на графических процессорах
2.4.1. Разработка параллельных алгоритмов
2.4.2. Анализ параллельных алгоритмов
2.4.3. Сравнение параллельных алгоритмов
2.5. Применение модели в средствах программирования графических
процессоров
2.5.1. Использование модели в CUD А
2.5.2. Использование модели в OpenCL
2.5.3. Использования модели для принятия решения об используемой вычислительной системе
Основные выводы
ГЛАВА 3. Разработка методов повышения производительности параллельных алгоритмов за счет эффективного использования объединенных ресурсов центрального и графического процессоров
3.1. Анализ возможностей кэширования данных в различных видах памяти графического процессора
3.2. Алгоритм принятия решения о целесообразности переноса вычислений на графический процессор и использования разделяемой памяти мультипроцессоров для кэширования данных
3.3. Применение полученных результатов к задаче фильтрации изображений
Основные выводы
ГЛАВА 4. Разработка программного компонента распознавания элементов интерфейса пользователя в средстве автоматического тестирования графических приложений
4.1. Средство автоматического тестирования графических приложений
4.2. Разработка и реализация параллельного алгоритма вычисления интегрального представления изображения
4.3. Разработка и реализация параллельного алгоритма поиска объектов на интегральном представлении изображения
4.4. Разработка и реализация параллельного алгоритма группировки результатов поиска объектов по положению и размеру
4.5. Анализ результатов экспериментов
4.6. Реализация программного компонента для распознавания произвольных элементов интерфейса пользователя с использованием графического процессора и результаты его работы
Основные выводы
ЗАКЛЮЧЕНИЕ
СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ
СПИСОК ТЕРМИНОВ
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЯ
146
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Технология программирования алгоритмов молекулярно-динамического моделирования наносистем на графических процессорах2017 год, кандидат наук Семенов Сергей Александрович
Численное решение задач гидроаэромеханики на графических процессорах2013 год, кандидат наук Карпенко, Антон Геннадьевич
Разработка эффективных алгоритмов для анализа данных с использованием графического процессора2011 год, кандидат технических наук Карпушин, Андрей Александрович
Методы и средства адаптивного управления ресурсами параллельно-конвейерных вычислительных систем1998 год, доктор технических наук Чефранов, Александр Георгиевич
Отображение DVMH-программ на кластеры с графическими процессорами2013 год, кандидат наук Притула, Михаил Николаевич
Введение диссертации (часть автореферата) на тему «Модели и алгоритмы параллельных вычислений на графических процессорах и их применение в программных средствах автоматического тестирования графических приложений»
ВВЕДЕНИЕ
Программируемые графические процессоры (GPU) в настоящее время представляют собой мощный и гибкий инструмент для выполнения вычислений общего назначения. Графические адаптеры обычно имеют в своем составе несколько сотен скалярных (потоковых) процессоров, частота которых сравнима с частотой ядер центральных процессоров (CPU), объединенных в блоки, называемые мультипроцессорами. Каждый мультипроцессор имеет собственную память, разделяемую скалярными процессорами, кроме того, GPU имеет общую (глобальную) память (GRAM) и память для хранения неизменяемых данных. Таким образом, GPU можно позиционировать в качестве дополнения вычислительных мощностей CPU при решении задач общего назначения. Однако, для того, чтобы эффективно использовать возможности GPU в процессе разработки программного обеспечения, нужно учитывать их существенные особенности [59, 81].
Во-первых, графические процессоры обладают параллелизмом по данным, т.е. все скалярные процессоры выполняют параллельно одинаковые инструкции над различными данными. Перенос на графический процессор алгоритмов, не допускающих распараллеливания по данным, не даст ощутимого повышения производительности. Во-вторых, при переносе вычислений на графический процессор необходимо учитывать пропускную способность различных видов памяти GPU и рационально использовать каждый вид памяти в целях повышения производительности.
В силу указанных особенностей, перенос вычислений на GPU требует серьезной проработки на алгоритмическом уровне индивидуально для каждой решаемой задачи. В настоящее время существует несколько моделей программирования графических процессоров (CUDA, OpenCL), однако в доступных источниках информации не имеется сведений о математических моделях, с помощью которых можно разрабатывать, сравнивать и анализировать
параллельные алгоритмы для GPU без их трудоемкой программной реализации. Безусловно, разработка алгоритмов для графических процессоров может быть значительно упрощена при использовании опыта распараллеливания вычислений для центральных процессоров на основе известных моделей [3, 26]. К сожалению, ни одна из них не может быть применена к графическим процессорам напрямую в силу значительных отличий архитектур CPU и GPU. Исходя из вышеизложенного, актуальной является задача адаптации известных моделей параллельных вычислений к специфике GPU.
Графические процессоры позволяют эффективно решать многие вычислительно ёмкие задачи. Одна из таких задач обозначилась в последние годы в связи с появлением многочисленных программных средств, предназначенных для автоматизации тестирования программных продуктов [10]. В процессе автоматического тестирования приложений через графический интерфейс пользователя программное средство должно имитировать действия человека-оператора, выполняющего «ручное» тестирование, на основе распознаваемых им экранных объектов (элементов интерфейса). При этом время, затрачиваемое программным средством на получение этих данных и принятие решения, должно быть не больше среднего времени реакции человека, работающего с тестируемым приложением.
Современные средства автоматического тестирования имеют в своем составе программный компонент для распознавания элементов интерфейса пользователя, однако в подавляющем большинстве случаев он позволяет распознавать только стандартные интерфейсные элементы (кнопки, поля ввода и т.д.). В последние годы появились программные средства для распознавания произвольных графических экранных объектов (Sikuli, eggPlant), но эта функция выполняется с видимым замедлением, что не позволяет выполнить полноценное автоматическое тестирование графических приложений с большим количеством элементов интерфейса. Принимая во внимание высокую трудоемкость алгоритмов распознавания образов и потенциальную возможность их распараллеливания по данным, актуальной является задача разработки быстродействующего
программного компонента для распознавания произвольных элементов интерфейса пользователя, реализующего алгоритмы параллельных вычислений на GPU.
Развитию существующих моделей параллельных вычислений посвящены работы S. Fortune, J. Wyllie, L. Valiant, В.В. Воеводина, B.C. Любченко. Специфика вычислений на графических процессорах представлена в работах S. Hong, H.Kim, А. Берилло, В. Фролова. Вопросы автоматического тестирования программ рассмотрены в работах И.В. Винниченко, В.В. Липаева, Г.Л. Гриппа.
Объектом диссертационного исследования являются параллельные вычисления на программируемых графических процессорах общего назначения.
Предметом диссертационного исследования являются модели, методы и алгоритмы эффективных параллельных вычислений на графических процессорах.
Цель диссертационного исследования заключается в повышении производительности параллельных вычислений за счет эффективного использования объединенных ресурсов центрального и графического процессоров применительно к задаче распознавания элементов пользовательского интерфейса в процессе автоматического тестирования графических приложений.
Основные задачи исследования
1. Разработка модели параллельных вычислений на графических процессорах, предназначенной для разработки, анализа и сравнения алгоритмов.
2. Разработка методов повышения быстродействия параллельных алгоритмов на графических процессорах и их применение к задаче распознавания произвольных графических элементов интерфейса пользователя.
3. Программная реализация параллельных алгоритмов распознавания элементов интерфейса пользователя с использованием GPU и их экспериментальная проверка.
4. Применение реализованных алгоритмов в программных средствах автоматического тестирования графических приложений.
Методы исследования. При выполнении работы использованы методы математического анализа и линейной алгебры, теории множеств, теории параллельных вычислений, теории графов, методы анализа алгоритмов.
На защиту выносятся следующие результаты:
1. Параметрическая модель параллельных вычислений на графических процессорах, представляющая собой уточнение и дополнение известной модели параллельных вычислений PRAM в соответствии с существенными особенностями графических процессоров.
2. Алгоритм принятия решения о целесообразности переноса вычислений на графический процессор и использования разделяемой памяти мультипроцессоров для кэширования данных.
3. Параллельный алгоритм обнаружения объектов на изображении по признакам Хаара с кэшированием интегрального представления изображения и данных классификаторов в памяти графического процессора.
4. Программный компонент для средств автоматического тестирования графических приложений, выполняющий распознавание произвольных элементов пользовательского интерфейса с использованием графических процессоров.
Научная новизна работы.
1. Предложена параметрическая модель параллельных вычислений на графических процессорах на основе модели PRAM, учитывающая все основные параметры графических процессоров. В отличие от известных моделей программирования графических процессоров, данная модель позволяет выполнять анализ алгоритмов для графических процессоров без их программной реализации, используя опыт распараллеливания вычислений на основе PRAM-модели.
2. Разработан алгоритм принятия решения о целесообразности переноса вычислений на графический процессор и использования разделяемой памяти мультипроцессоров для кэширования данных, основанный на оценке времени вычислений с помощью предложенной модели. Принятие решения о переносе вычислений может быть выполнено в автоматическом режиме.
3. Разработан параллельный алгоритм обнаружения объектов на изображении по признакам Хаара с кэшированием интегрального представления изображения и данных классификаторов в разделяемой памяти мультипроцессоров, позволяющий сократить время обнаружения объектов по сравнению с известными алгоритмами метода Viola-Jones.
4. Разработан быстродействующий программный компонент для распознавания элементов графического интерфейса пользователя, позволяющий существенно расширить круг графических приложений, которые могут быть протестированы в автоматическом режиме.
Обоснованность и достоверность полученных результатов обеспечивается корректностью применяемого математического аппарата, строгими доказательствами предложенных утверждений, результатами вычислительного эксперимента.
Практическая значимость работы заключается в том, что теоретические и экспериментальные результаты можно применять для упрощения и ускорения процессов разработки, анализа и сравнения параллельных алгоритмов для программируемых графических процессоров различных моделей, а также принимать решение о целевой вычислительной системе в автоматическом режиме непосредственно во время работы программы.
Разработанный программный компонент для распознавания элементов графического интерфейса пользователя, включающий в себя параллельный алгоритм обнаружения объектов на изображении по признакам Хаара с кэшированием интегрального представления изображения и данных классификаторов, позволяет повысить производительность средств автоматического тестирования графических приложений, эффективно используя объединенные ресурсы графического и центрального процессоров.
Реализация результатов исследования. Теоретические и практические результаты диссертационной работы используются в программных средствах ООО «Плейрикс» и НИП «Адрэм», что подтверждено актами о внедрении (см. Приложение 1, 2). Кроме того, результаты работы используются в учебном
процессе кафедры «Автоматика и вычислительная техника» Вологодского государственного технического университета при преподавании курса «Структуры и алгоритмы обработки данных» (см. Приложение 3).
Материалы работы использованы в Федеральной целевой программе «Научные и научно-педагогические кадры инновационной России» на 2009-2013 годы в рамках проектов «Разработка методов формализации и верификации распределенных информационно-поисковых систем на основе сервис-ориентированной архитектуры» и «Методология построения интеллектуальных агентно-ориентированных комплексов для многоуровневой подготовки специалистов технического профиля» (см. Приложение 4).
Апробация результатов исследования. Основные результаты работы докладывались и получили положительную оценку на следующих конференциях, симпозиумах и семинарах: Всероссийская научно-практическая конференция «Информационно-телекоммуникационные технологии» (Москва, 2010 г.), Всероссийская научная конференция студентов и аспирантов «Молодые исследователи - регионам» (Вологда, 2008, 2009 гг.), Всероссийская конференция «Вузовская наука - региону» (Вологда, 2008, 2009, 2010 гг.), семинар вологодского отделения РАН по искусственному интеллекту (Вологда, 2010 г.), городской семинар «Информатика и компьютерные технологии» (Санкт-Петербург, 2012 г.).
Публикации. По материалам диссертационного исследования опубликовано 11 печатных работ, из них три в журналах, включенных в перечень ВАК.
Структура диссертационной работы. Работа состоит из введения, четырёх глав, заключения, библиографического списка и приложений. Текст изложен на 146 страницах, содержит 36 рисунков и 2 таблицы. Библиографический список включает 105 наименований
Во введении обоснована актуальность темы диссертации, сформулированы цель и задачи работы, научная новизна, практическая значимость, указаны основные положения, выносимые на защиту.
В первой главе выполнена постановка задачи исследования. Выполнен обзор основных моделей параллельных вычислений и структур графических процессоров и сделан вывод о том, что для описания графических мультипроцессоров подходит модель PRAM, следовательно, данная модель может быть принята за основу при разработке модели параллельных вычислений на графических процессорах. Также в этой главе проведён анализ программных средств автоматического тестирования графических приложений через интерфейс пользователя, показана роль программного компонента распознавания элементов интерфейса в процессе тестирования в автоматическом режиме и обоснованы перспективы использования графических процессоров при реализации данного компонента.
Во второй главе предложена и обоснована параметрическая модель параллельных вычислений на графических процессорах, а также методы разработки, анализа и сравнения параллельных алгоритмов на основе предложенной модели, описано ее использование в существующих моделях программирования GPU. Учитывая сходство графического мультипроцессора и PRAM машины, в работе представлено параметрическое описание работы графического мультипроцессора на основе PRAM модели. На этой базе разработана параметрическая модель параллельных вычислений на GPU и сделан вывод о том, что с помощью данной модели можно выполнять разработку, анализ и сравнение параллельных алгоритмов теми же методами, которые применяется в PRAM модели. Далее выполнен вывод зависимостей для оценки времени вычислений с помощью предложенной модели.
В третьей главе обосновывается метод кэширования данных, представленных в виде двумерных массивов (например, на изображении), в разделяемой памяти мультипроцессоров. На основе выведенных соотношений для оценки времени вычислений на GPU предлагается алгоритм принятия решения о целесообразности переноса вычислений на графический процессор и использования разделяемой памяти мультипроцессоров для кэширования данных.
В четвертой главе рассматривается применение полученных результатов в процессе реализации быстродействующего программного компонента, предназначенного для распознавания экранных элементов интерфейса пользователя в процессе автоматического тестирования графических приложений. Предлагаются способы распараллеливания алгоритмов метода Viola-Jones, основанные на использовании предложенной модели параллельных вычислений на графических процессорах. Представлены результаты вычислительного эксперимента.
В заключении обобщены результаты проведенных исследований.
В приложениях представлены акты о внедрении результатов работы.
ГЛАВА 1. Анализ абстрактных моделей параллельных вычислений с учетом особенностей графических процессоров
1.1. Анализ абстрактных моделей параллельных вычислений
Существует большое множество различных архитектур систем параллельной обработки данных [11], для каждой из которых создаются алгоритмы, учитывающие индивидуальные особенности конкретной системы. Чтобы абстрагироваться от деталей реализации алгоритмов и аппаратного обеспечения таких систем, были разработаны абстрактные модели параллельных вычислений, которые обеспечивают высокоуровневый подход к определению характеристик и сравнению времени выполнения алгоритмов [3, 77]. Эти модели представляют собой идеализированные вычислительные машины с различными видами памяти и межпроцессорного взаимодействия, что позволяет применять их для разработки, анализа и сравнения параллельных алгоритмов для любых существующих архитектур параллельных вычислительных систем (PRAM, BSP, LogP и т.д.) [102], в том числе и графических процессоров. Именно поэтому они выбраны для анализа в качестве базисных для формирования абстрактной модели параллельных вычислений на графических процессорах. Однако стоит отметить, что есть и модели параллельных вычислений, основанные на структуре программы, абстрагирующиеся таким образом от конкретной вычислительной системы (модель в виде графа «операции-операнды»[12], NESL [46], модель функционально-потоковых параллельных вычислений [28] и т.д.). Данные модели используются для создания языков параллельного программирования и применимы для абстрактных идеализированных машин в качестве инструмента анализа времени выполнения, ускорения и эффективности параллельных алгоритмов. Поэтому они также будут затронуты в обзоре основных абстрактных моделей параллельных вычислений.
1.1.1. Модель PRAM
PRAM (Parallel Random Access Machine, машина с параллельным случайным доступом) является идеализированной абстрактной моделью синхронной машины с разделяемой памятью. Данная модель была предложена в 1978 г. S. Fortune и J. Wyllie [55] для оценки производительности (в частности, времени выполнения) параллельных алгоритмов.
PRAM предполагает наличие бесконечного числа процессоров, каждый из которых может синхронно выполнять различные инструкции над данными в общей памяти, работая таким образом в MIMD режиме [2]. Если все процессоры будут выполнять одни и те же инструкции, то данную модель можно считать абстрактной SIMD-машиной. В модели PRAM не рассматриваются проблемы синхронизации и коммуникации процессоров, а основные команды, которые могут выполнять процессоры, совпадают с командами обычной RAM (Random Access Machine, машина со случайным доступом к памяти) [94]: арифметические, логические операции и операции обращения к памяти. Последние вызывают ряд проблем в параллельных алгоритмах, поэтому в рамках модели PRAM было разработано несколько различных стратегий для разрешения конфликтов при обращении к памяти:
1) Concurrent Read, Concurrent Write (CRCW, одновременное чтение при одновременной записи) - в любой момент времени данные из общей памяти могут быть параллельно считаны и записаны любыми процессорами;
2) Concurrent Read, Exclusive Write (CREW, одновременное чтение при монопольной записи) - в любой момент времени данные из общей памяти могут быть параллельно считаны любыми процессорами, но запись может производиться только одним процессором;
3) Exclusive Read, Concurrent Write (ERCW, монопольное чтение при одновременной записи) - в любой момент времени данные из общей памяти могут быть считаны только одним процессором, а записаны параллельно несколькими процессорами;
4) Exclusive Read, Exclusive Write (EREW, монопольное чтение при монопольной записи) - в любой момент времени данные из общей памяти могут быть считаны и записаны только одним процессором.
В PRAM всё управление производится с помощью единого тактового счётчика, и считается, что все процессоры выполняют команды синхронно с этим счётчиком. За один такт выполняется сразу три действия: считывание данных из общей памяти, выполнение операции над считанными данными и запись результатов в общую память. Это условие выполняется, даже если все процессоры будут выполнять разные операции или разное количество обращений к памяти. Именно поэтому модель PRAM является идеализированной, т.к. в настоящих вычислительных машинах данные действия варьируются во времени. Тем не менее, модель PRAM подходит для создания, анализа и сравнения алгоритмов с учётом следующих допущений:
1) количество процессоров (р) в машине не ограничено;
2) каждый процессор имеет равнозначный доступ к любой ячейке общей памяти;
3) размер общей памяти не ограничен;
4) отсутствует конкуренция по ресурсам;
5) процессоры работают в режиме MIMD.
Для моделирования алгоритмов на PRAM машине были созданы эмуляторы, отражающие основные особенности данной модели [75].
Для моделирования и анализа алгоритмов на PRAM необходимо представить их вычисления в виде ациклического ориентированного графа «операции-операнды» [12]:
G = (V,R), (1.1)
где V - множество вершин графа, представляющие выполняемые операции алгоритма;
R - множество дуг графа.
Очевидно, что количество различных вариаций схем вычисления по построенным графам будут иметь разные возможности для распараллеливания.
Операции, между которыми нет пути в построенном графе, могут быть выполнены параллельно. Таким образом, следующим шагом для распараллеливания алгоритма служит построение расписания для необходимого количества процессоров:
Н(р) = {(1,Р^,)ИеУ}, (1.2)
где Pt - номер процессора, на котором выполняется операция /;
г, - время (такт) начала выполнения данной операции.
Это расписание будет выполняться на PRAM только в том случае, если в один и тот же момент времени будут задействованы различные процессоры, а все начальные данные для выполнения вычислений на этом шаге будут выполнены на предыдущем шаге (такте). Для оценки времени выполнения алгоритма необходимо найти максимальную величину t, в расписании:
T(G,H,p) = max(tl+\). (1.3)
Чтобы найти минимальное время, за которое будет выполнен параллельный алгоритм, необходимо проанализировать все возможные расписания и вычислительные графы:
Т{р) = min(min (T(G,H,p))}. (1.4)
Для получения минимального времени выполнения алгоритма на произвольном числе процессоров PRAM машины необходимо дать оценку по формуле (1.4) для различного количества процессоров:
T = minT(p). (1.5)
Р> 1
Полученное количество тактов PRAM - основная характеристика алгоритма при моделировании параллельных алгоритмов в PRAM модели без учёта размера входных данных. Очевидно, что оценивать параллельные алгоритмы, анализируя все расписания и графы, достаточно сложно. Кроме того, в реальных вычислительных системах количество процессоров ограничено, также как и размер обрабатываемых данных. Поэтому были введены параметры
параллельного алгоритма, выраженные в оценке рабочей и шаговой сложности (Work-Time Paradigm) в зависимости от размера входных данных.
Определение 1.1 Шаговой сложностью параллельного алгоритма в PRAM при обработке N элементов данных S(N) называется количество тактов (шагов) PRAM машины, требуемое для выполнения алгоритма [50].
По сути, шаговая сложность определяется максимальной длиной пути вычислительного графа G при условии, что будут соблюдены правила составления расписаний [12]. Но в реальности она может изменяться в зависимости от размера входных данных.
Определение 1.2 Рабочей сложностью параллельного алгоритма в PRAM fV(N) называется количество операций, выполняемых всеми процессорами на всех шагах алгоритма [50]:
S(N)
W{N)=^Wt{N), (1.6)
(=i
где W, (N) - количество параллельных операций на шаге /.
Чтобы оценить время выполнения алгоритма для N входных данных на PRAM машине, использующей р процессоров, используется теорема Брента [26]: Алгоритм с шаговой сложностью S(N) и рабочей сложностью W{N) может быть смоделирован на р -процессорной PRAM машине за не более чем
T(N,p) = + S(N) \ шагов.
VP
Для моделирования алгоритма на PRAM машине требуется составить схему из функциональных элементов, соединённых между собой без образования циклов так, что число входов в элемент может быть множество, но выход только один. Число входов определяет входную степень элемента (fan-in), а число входов, к которым подключён выход элемента - выходной степенью элемента
(fan-out). Обычно, все входные степени ограничены сверху, выходные же степени могут быть любыми [3, 26]. Под размером схемы п понимается число элементов в ней, а глубиной d - наибольшее число элементов на пути от входов схемы к её выходам, что соответствует рабочей и шаговой сложности параллельного алгоритма.
Рассмотрим ещё две характеристики параллельных алгоритмов, которые важны при их анализе и сравнении: ускорение и эффективность.
Определение 1.3 Ускорение, получаемое при использовании параллельного алгоритма для р процессоров, по сравнению с последовательным вариантом вычислений определяется соотношением [50]:
= (1.7)
Т{М,рУ
где TS(N) - оценка время выполнения последовательной версии алгоритма (может быть реализована из параллельной версии).
Определение 1.4 Эффективностью параллельного алгоритма для р процессоров называется величина, определяющая среднюю долю времени алгоритма, в течение которой процессоры реально задействованы для решения задачи [12], и определяется соотношением:
Р ■ T(N, р) р
Модель PRAM, как отмечалось ранее, идеализирована и не подходит для многих существующих вычислительных систем. В основном это связано с проблемами синхронизации процессоров через общую память, физическим исполнением команд процессорами и ограниченностью самого количества процессоров. Поэтому были разработаны дополнительные модели, взявшие за основу PRAM, которые позволяли моделировать иные типы параллельных алгоритмов, учитывающие особенности физических систем [76].
Одной из первых модификаций PRAM стала модель с локальной памятью процессоров (LPRAM, Local-memory PRAM), в которой был введён параметр L, обозначающий количество тактов при выполнении обращения к глобальной общей памяти машины. У каждого процессора в такой системе была своя локальная память, в которую и подгружались данные из общей памяти. В дальнейшем данная модель получила несколько модификаций вплоть до иерархического представления памяти [39].
Естественным развитием LPRAM стала блочная PRAM (BPRAM, А. Aggarwal, A.K. Chandra, М. Snir) [36, 82], где у каждого процессора есть своя локальная память, в которую могут подгружаться данные из общей глобальной памяти в виде блоков. Именно блоками процессоры обмениваются для коммуникации между собой, притом для обращения к первому элементу блока требуется L тактов, а к остальным - b, в зависимости от пропускной способности общей памяти. Таким образом, при разработке алгоритмов требуется обращать внимание на локальные вычисления процессоров, а также включать блок их синхронизации через глобальную память. Блочное чтение/запись являются неотъемлемой частью некоторых параллельных вычислительных систем, использующих так называемые банки памяти, которые позволяют обращаться к глобальной памяти по определённым паттернам адресов. Данная модель в основном используется при создании алгоритмов сортировки данных [82].
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Адаптивная стратегия рендеринга динамических трехмерных сцен2021 год, кандидат наук Гонахчян Вячеслав Игоревич
Эффективная реализация модели ассоциативных вычислений на графических ускорителях для решения задач на графах2023 год, кандидат наук Снытникова Татьяна Валентиновна
Алгоритмические и программные средства компрессии текстур на графических процессорах2014 год, кандидат наук Перминов, Илья Валентинович
Математическое и программное обеспечение распределения данных в проблемно-ориентированных параллельных программах2014 год, кандидат наук Палагин, Владимир Владимирович
Интерфейс бесконтактного человеко-машинного взаимодействия на основе данных сенсора-дальномера2014 год, кандидат наук Котюжанский, Леонид Анатольевич
Список литературы диссертационного исследования кандидат наук Капустин, Дмитрий Сергеевич, 2013 год
СПИСОК ЛИТЕРАТУРЫ
1. Архитектура и программирование потоковых многоядерных процессоров для научных расчётов. Лекция 3. Типы параллелизма. Модель памяти CUDA [Электронный ресурс]. - Режим доступа: http://www.nvidia.ru/docs/IO/60385/Lecture_33.pdf
2. Афанасьев, К.Е. Многопроцессорные вычислительные системы и параллельное программирование [Электронный ресурс] / К.Е. Афанасьев, C.B. Стуколов, A.B. Демидов и др. - Кемеровский государственный университет, 2004. - Режим доступа: http://umk.portal.kemsu.ru/mps/
3. Баканов, В.М. Параллельные вычисления: Учебное пособие / В.М. Баканов. - Москва, 2006. - 124 с.
4. Барсегян, A.A. Анализ данных и процессов: учеб.пособие / A.A. Барсегян, М.С. Куприянов, И.И. Холод и др. - СПб.: БХВ-Петербург, 2009. - 512 с.
5. Барский, А.Б. Архитектура параллельных вычислительных систем [Электронный ресурс] / А.Б. Барский. - 2006. - Режим доступа: http ://www.intuit.ru/department/hardware/paralltech/4/3 .html
6. Берилло, А. Семейства видеокарт AMD (ATI) RADEON. Спецификации чипов семейства R[V]6XX [Электронный ресурс] / А. Берилло. -
2008. - Режим доступа: http://www.ixbt.com/video2/spravka-r6xx.shtml
7. Берилло, А. Семейства видеокарт AMD (ATI) RADEON. Спецификации чипов семейства R[V]7XX [Электронный ресурс] / А. Берилло. -
2009. - Режим доступа: http://www.ixbt.com/video2/spravka-r7xx.shtml
8. Берилло, А. Семейства видеокарт AMD (ATI) RADEON. Спецификации чипов семейства R[V]8XX [Электронный ресурс] / А. Берилло. -
2010. - Режим доступа: http://www.ixbt.com/video2/spravka-r8xx.shtml
9. Брилюк, Д.В. Нейросетевые методы распознавания изображений [Электронный ресурс] / Д.В. Брилюк, В.В. Старовойтов. - Режим доступа: http://rusnauka.narod.ru/lib/author/briluk_d_b/l/
10. Винниченко, И.В. Автоматизация процессов тестирования / И.В. Винниченко. - СПб.: Питер, 2005. - 203с.
И. Воеводин, В.В. Параллельные вычисления / В.В. Воеводин, Вл.В. Воеводин. - СПб.: БХВ-Петербург, 2002. - 608 с.
12. Гергель, В.П. Теория и практика параллельных вычислений [Электронный ресурс] / В.П. Гергель. - 2007. - Режим доступа: http://www.intuit.ru/department/calculate/paralltp/
13. Гриппа, Г.Л. Современные методики тестирования компьютерного программного обеспечения. Автоматизация тестирования [Электронный ресурс] / Г.Л. Гриппа, И.Г. Черноруцкий. - Санкт-Петербург, 2003 - Режим доступа: http://dl.unilib.neva.ru/dl/003421 .pdf
14. Капустин Д.С. Модификация абстрактной модели параллельных вычислений PRAM с учетом существенных особенностей графических процессоров / Д.С. Капустин, С.Ю. Ржеуцкая // Естественные и технические науки, №5(55). - М.: Спутник+, 2011. - С. 336-342.
15. Капустин, Д.С. Использование графических процессоров для задач распознавания текста / Д.С. Капустин // Материалы всероссийской научной конференции студентов и аспирантов «Молодые исследователи - регионам». В 2-х т. - Вологда: ВоГТУ, 2009. - Т.1. - С. 72-73.
16. Капустин, Д.С. Использование графических процессоров для параллельных вычислений / Д.С. Капустин // Материалы седьмой всероссийской научно-технической конференции «Вузовская наука - региону». В 2-х т. -Вологда: ВоГТУ, 2009. - Т. 1. - С. 58-60.
17. Капустин, Д.С. Использование модели параллельных вычислений на графических процессорах в задаче обнаружения объектов по методу Viola-Jones / Д.С. Капустин // Системы управления и информационные технологии. - №3(41). -Москва-Воронеж: Научная книга, 2010. - С. 87-91.
18. Капустин, Д.С. Использование общей памяти графических процессоров для ускорения параллельных вычислений алгоритмов машинного зрения / Д.С. Капустин // Материалы восьмой всероссийской научно-технической конференции «Вузовская наука - региону». В 2-х т. - Вологда: ВоГТУ, 2010. - Т. 1. -С. 84-86.
19. Капустин, Д.С. Объектно-ориентированный подход к программированию шейдеров / Д.С. Капустин // Материалы Всероссийской научной конференции студентов и аспирантов «Молодые исследователи -регионам». В 2-х т. - Вологда: ВоГТУ, 2008. - Т. 1. - С. 86-87.
20. Капустин, Д.С. Параллельные алгоритмы для графических процессоров в задачах обработки массивов данных / Д.С. Капустин // Сборник тезисов всероссийской конференции с элементами научной школы для молодежи «Проведение научных исследований в области информационно-телекоммуникационных технологий». - М: Департамент развития информационно-телекоммуникационных технологий Министерства образования и науки РФ, 2010. - С.69-70.
21. Капустин, Д.С. Повышение качества трехмерной визуализации в САПР / Д.С. Капустин // Материалы межрегиональной научно-практической конференции «Развитие деревянного домостроения в Вологодской области. Проблемы и практические решения». - Вологда: Издательский центр ВИРО, 2008.-С. 129-134.
22. Капустин, Д.С. Развитие технологий программирования трёхмерной компьютерной графики / Д.С. Капустин // Материалы шестой всероссийской научно-технической конференции «Вузовская наука - региону». - Т. 1. - Вологда: ВоГТУ, 2008. - С. 94-96.
23. Капустин, Д.С. Использование графических процессоров для распознавания объектов с помощью алгоритма Viola-Jones / Д.С. Капустин, С.Ю. Ржеуцкая // Информационные технологии моделирования и управления. -№1(60). - Воронеж: Научная книга, 2010. - С. 9-15.
24. Капустин, Д.С. Оценка производительности параллельных вычислений на графических процессорах на примере алгоритмов машинного зрения / Д.С. Капустин, С.Ю. Ржеуцкая // Системы управления и информационные технологии. - №1.1(43). - Москва-Воронеж: Научная книга, 2011.-С. 194-198.
25. Комолкин, A.B. Программирование для высокопроизводительных ЭВМ: учебно-методическое пособие по курсу лекций «Современные технологии программирования» / A.B. Комолкин, С.А. Немнюгин. - СпбГУ, 1998. - 52 с.
26. Кормен, Т. Алгоритмы. Построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест. - М.: МЦНМО, 1999. - 960 с.
27. Кудряшов, П.П. Алгоритмы обнаружения лица человека для решения прикладных задач анализа и обработки изображений : автореф. дис. ... канд. техн. наук / П.П. Кудряшов. - Москва, 2007. - 127 с.
28. Легалов, А.И. Функциональная модель параллельных вычислений и язык программирования «Пифагор» [Электронный ресурс] / А.И. Легалов, Ф.А. Казаков, Д.А. Кузьмин и др. - 2002. - Режим доступа: http://www.softcraft.ru/parallel^p/fppcontent.shtml
29. Липаев, В.В. Тестирование компонентов и комплексов программ. Учебник / В.В. Липаев. - М.: СИНТЕГ, 2010. - 400 с.
30. Любченко, B.C. К проблеме создания модели параллельных вычислений [Электронный ресурс] / B.C. Любченко. - 2006. - Режим доступа: http://www.softcraft.ru/auto/ka/modproblem/modproblem.pdf
31. Осовский, С. Нейронные сети для обработки информации : пер. с польского / С. Оссовский. - М.: Финансы и статистика, 2002. - 344 с.
32. Таненбаум, Э. Современные операционные системы / Э. Таненбаум. -2-е изд. - СПб.: Питер, 2002. - 1040 с.
33. Трудоемкость алгоритмов и временные оценки [Электронный ресурс] // Теория алгоритмов. - Москва, 2004. - Режим доступа: http://th-algoritmov.narod.ru/5.htm
34. Фролов, В. Введение в технологию CUDA [Электронный ресурс] / В. Фролов // Компьютерная графика и мультимедиа. - №6(1). - 2008. - Режим доступа: http://cgm.computergraphics.ru/issues/issuel6/cuda
35. Шрестха, С.Н. Решение задачи подготовки и контроля цифровых фотографий для биометрических документов [Электронный ресурс] / С.Н. Шрестха, А.Г. Слюсаренко. - 2009. - Режим доступа: http://194.44.242.245/bitstream/handle/123456789/8124/75-Sherstkha.pdf
36. Aggarwal, A. On communication latency in PRAM computations / A. Aggarwal, A.K. Chandra, M. Snir // Proc. Of First Ann. ACM Symp. on Parallel Algorithms and Architectures. - 1989. - P. 11-21.
37. Alexandrov, A. LogGP: incorporating long messages into the LogP model - one step closer towards a realistic model for parallel computation / A. Alexandrov, M.F. Ionescu, K.E. Schauser et al. // Proceedings of the seventh annual ACM symposium on Parallel algorithms and architectures. - 1995. - P. 95-105.
38. Allusse, Y. GpuCV: An OpenSource GPU-Accelerated Framework for Image Processing and Computer Vision / Y. Allusse, P. Horain, A. Agarwal et al. // Proceedings ACM Multimedia. - 2008. - P. 1089-1092.
39. Alpern, B. Modelling Parallel Computers as Memory Hierarchies / B. Alpern, L. Carter, J. Ferrante // Proc. of Programming Models for Massively Parallel Computers. - IEEE Computer Society Press. - 1993. - P. 116-123.
40. An Introduction to Very-Long Instruction Word (VLIW). Computer Architecture [Электронный ресурс]. - Режим доступа: http://visl.technion.ac.il/documents/trimedia/vliw-wp.pdf
41. ATI Stream Computing. OpenCL [Электронный ресурс]. - Режим доступа:
http://www.ljll.math.upmc.fr/groupes/gpgpu/tutorial/ATI_Stream_SDK_OpenCL_Progr amming_Guide.pdf
42. Ballereau, О. High-level BSP Programming: BSML and BSlambda / O. Ballereau, F. Loulergue, G. Hains // Trends in Functional Programming. - Intellect Books, 2000.-P. 29-38.
43. Bilardi, G. BSP vs LogP / G. Bilardi, K.T. Herley, A. Pietracaprina et al. // Proceedings of 8th Annual Symposium on Parallel Algorithms and Architectures. -1996.-P. 25-32.
44. Bisseling, R.H. Parallel Scientific Computation. A Structured Approach using BSP and MPI / Bisseling R.H. - Hardback, 2004. - 326 p.
45. Blelloch, G.E. Prefix Sums and Their Applications / G.E. Blelloch // Tech. Rep. CMU-CS-90-190, Carnegie Mellon University, School of Computer Science, 1990.-60 p.
46. Blelloch, G.E. Programming Parallel Algorithms - NESL [Электронный ресурс] / G.E. Blelloch, M. Sirivianos, B. Theodories. - Режим доступа: http://www-csag.ucsd.edu/teaching/cse29 ls03/Lectures/Programming%20Parallel%20Algorithms% 20-%20NESL_v2.ppt
47. Blelloch, G.E. Vector Models for Data-Parallel Computing / G.E. Blelloch. - London: MIT Press, 1990. - 256 p.
48. Brodtkorb, A.R. State-of-the-art in heterogeneous computing / A.R. Brodtkorb, C. Dyken, T.R. Hagen et al. // Scientific Programming. - Vol.18. — 2010. — P. 1-33.
49. Chang, Т.Н. GUI Testing Using Computer Vision [Электронный ресурс] / Т.Н. Chang, Т. Yeh, R.C. Miller. - 2010. - Режим доступа: http://groups.csail.mit.edu/uid/projects/sikuli/sikuli-chi2010.pdf
50. Chatterjee, S. COMP 633: Parallel Computing PRAM Algorithms [Электронный ресурс] / S. Chatterjee, J. Prins. - 2009. - Режим доступа: http://cgvr.cs.uni-bremen.de/teaching/mpar_literatur/PRAM%20Algorithms%20-%20Chatterjee,%202009.pdf
51. Chu, M.M. GPU Computing: Past, Present and Future with ATI Stream Technology [Электронный ресурс] / M.M. Chu. - 2012. - Режим доступа: http://developer.amd.com/wordpress/media/2012/10/GPU%20Computing%20-%20Past%20Present%20and%20Future%20with%20ATI%20Stream%20Technology.p df
52. Cordiner, A. Illumination invariant face detection [Электронный ресурс] / A. Cordiner. - 2009. - Режим доступа: http://ro.uow.edu.au/cgi/viewcontent.cgi?filename=0&article=1864&context=theses&ty pe=additional
53. Culler, D. LogP: Towards a Realistic Model of Parallel Computation / D.Culler, R. Karp, D. Patterson et al. // Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming. - №7(28). - 1993. - P. 1-12.
54. Dalai, N. Histograms of Oriented Gradients for Human Detection [Электронный ресурс] / N. Dalai, В. Triggs. - 2005. - Режим доступа: http://vision.stanford.edu/teaching/cs231b_springl213/papers/CVPR05_DalalTriggs.pd f
55. Fortune, S. Parallelism in random access machines / S. Fortune, J. Wyllie // Proc. Tenth ACM Symposium on Theory of Computing. - 1978. - P. 114-118.
56. G80 Streaming Multiprocessor documentation [Электронный ресурс]. -Режим доступа: http://pc.watch.impress.co.jp/docs/2007/0326/kaigai_4.pdf
57. Gibbons, Р.В. A More Practical PRAM Model / P.B. Gibbons // Lecture Notes in Computer Science. - Vol.1124. - 1996. - P. 277-292.
58. Goudreau, M.W. The Green BSP Library / M.W. Goudreau, K. Lang, S.B. Rao et al. // Technical Report CS-TR-95-11. - University of Central Florida, 1995.
59. Harris, M. Mapping computational concepts to GPUs / M. Harris // GPU Gems 2. - M. Pharr, Ed. Addison Wesley, 2005. - P. 493-508.
60. Harris, M. Optimizing CUDA [Электронный ресурс] / M. Harris. -Режим доступа: http://people.maths.ox.ac.uk/~gilesm/hpc/NVIDIA/CUDA_Optimization_Harris.pdf
61. Harvey, J.P. GPU Acceleration of Object Classification Algorithms Using NVIDIA CUDA / J.P. Harvey // Master's thesis. - Rochester Institute of Technology, 2009.-80 p.
62. Hey wood, T. A Practical Hierachical Model of Parallel Computation. I. The Model / T. Heywood, S. Ranka // Journal of Parallel and Distributed Computing. -№3(16).- 1992.-P. 212-232.
63. Heywood, T. A Practical Hierachical Model of Parallel Computation. II. Binary Tree and FFT Algorithms / T. Heywood, S. Ranka // Journal of Parallel and Distributed Computing. - №3(16). - 1992. - P. 233-249.
64. Hill, J. Theory, practice, and a tool for BSP performance prediction / J. Hill, P.I. Crumpton, D. A. Burgess // Lecture Notes in Computer Science. - Vol. 1124. — 1996-P. 697-705.
65. Hill, J. BSPlib: The BSP Programming Library / J. Hill, B. McColl, D.C. Stefanescu et al. // Parallel Computing 24. - 1998. - P. 1947-1980.
66. Hillis, W.D. Data Parallel Algorithms / W.D. Hillis, G.L. Steele // CACM. -№29(12).- 1986.-P. 1170-1183.
67. Hoefler, T. LogGP in Theory and Practice - An In-depth Analysis of Modern Interconnection Networks and Banchmarking Methods for Collective Operations / T. Hoefler, T. Schneider, A. Lumsdaine // Elsevier Journal of Simulation Modelling Practice and Theory. - №9( 17). - 2009.-P. 1511-1521.
68. Hoefler, T. LogGOPSim - Simulating Large-Scale Applications in the LogGOPS Model / T. Hoefler, T. Schneider, A. Lumsdaine // Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing. - 2010. -P. 597-604.
69. Hong, S. An Analytical Model for a GPU Architecture with Memory-level and Thread-level Parallelism Awareness / S. Hong, H. Kim // ACM SIGARCH Computer Architecture News. - №3(37). - 2009. - P. 152-163.
70. Horn, D. Stream reduction operations for GPGPU applications / D. Horn // GPU Gems 2. - M. Pharr, Ed. Addison Wesley, 2005. - P. 573-589.
71. Johansson, D. Bulk-Synchronous Parallel Computing on the CELL Processor / D. Johansson, M. Eriksson, C. Kessler // PARS-2007: 21. - Hamburg, 2007.
72. Kachurin, A. Introduction to Boosting [Электронный ресурс] / A. Kachurin. - 2006. - Режим доступа: http://www.cs.ucf.edu/courses/cap6411/сар641 l/spring2006/Lecturel0.pdf
73. Knee, S. Program development and performance prediction on BSP machines using Opal / S. Knee // Technical Report PRG-TR-18-94. - Oxford University Computing Laboratory, 1994. - 68 p.
74. Lienhart, R. An Extended Set of Haar-like Features for Rapid Object Detection / R. Lienhart, J. Maydt // IEEE ICIP. - 2002. - P. 900-903.
75. Liu, Y.L. Parallel Random Access Machine Model Emulator [Электронный ресурс] / Y.L. Liu, S. Kaewyou. - 1994. - Режим доступа: http://www.cs.bu.edu/~best/crs/cs551/projects/pram/pram.html
76. Maggs, B.M. Models of Parallel Computation: A Survey and Synthesis / B.M. Maggs, L.R. Matheson, R.E. Tarjan // Proceedings of the 28th Annual Hawaii International Conference on System Sciences. - Vol.2. - 1995. - P. 61-70.
77. Mellor-Crummey, J. Models for Understanding Parallel Performance [Электронный ресурс] / J. Mellor-Crummey. - 2005. - Режим доступа: http://www.cs.rice.edu/~johnmc/comp528/lecture-notes/Lecture24.pdf
78. Messom, С. High Precision GPU based Integral Images for Moment Invariant Image Processing Systems [Электронный ресурс] / С. Messom, A. Barczak. - 2008. - Режим доступа: http://citeseerx.ist.psu.edu/viewdoc/download?doi=l 0.1.1.149.9357&rep=rep 1 &type=p df
79. Messom, C. Stream Processing for Fast and Efficient Rotated Haar-like Features using Rotated Integral Images / C. Messom, A. Barczak // International Journal of Intelligent Systems Technologies and Applications. - №7(1). - 2009. - P. 40-57.
80. Micikevicius, P. Optimizing CUDA [Электронный ресурс] / P. Micikevicius. - Режим доступа: http://mc.stanford.edU/cgi-bin/images/0/0a/M02_4.pdf
81. Munshi, A. OpenCL. Parallel Computing on the GPU and CPU [Электронный ресурс] / A. Munshi. - 2008. - Режим доступа: http://s08.idav.ucdavis.edu/munshi-opencl.pdf
82. Niedermeier, R. PRAM's Towards Realistic Parallelism: BRAM's / R. Niedermeier, P. Rossmanith // Lecture Notes in Computer Science. - T. 965. - 1995. -P. 363-373.
83. NVIDIA CUD A. CUD А С Best Practices Guide [Электронный ресурс]. -Режим доступа: http://docs.nvidia.com/cuda/pdf/CUDA_C_Best_Practices_Guide.pdf
84. NVIDIA GeForce 8800 GPU Architecture Overview. Technical Brief [Электронный ресурс]. - 2006. - Режим доступа: http://www.cse.ohio-state. edu/~agrawal/78 8-suO 8/Papers/week2/GPU .pdf
85. NVIDIA GeForce GRX 200 GPU Architectural Overview. Technical Brief [Электронный ресурс]. - 2008. - Режим доступа: http://www.nvidia.com/docs/IO/55506/GeForce_GTX_200_GPU_Technical_Bnef.pdf
86. NVIDIA's Next Generation CUD A Compute Architecture: Fermi [Электронный ресурс]. - 2009. - Режим доступа: http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Ar chitecture_Whitepaper.pdf
87. NVIDIA CUDA С Programming Guide [Электронный ресурс]. - 2009. -Режим доступа: http://moss.csc.ncsu.edU/~mueller/cluster/nvidia/2.3/NVIDIA_CUDA_Programming_G uide_2.3.pdf
88. Obukhov, A. Face Detection with CUDA [Электронный ресурс] / A. Obukhov // GraphiCon. - 2009. - Режим доступа: http://gc2009.graphicon.ru/files/gc2009/Graphicon2009_NVIDIA_AObukhov_FaceDet ection.pdf
89. Pisarevsky, V. OpenCV Object Detection: Theory and Practice [Электронный ресурс] / V. Pisarevsky. - 2007. - Режим доступа: http://www.scribd.com/doc/4547752/opencv-objectdetection-2007junel0
90. Podlozhnyuk, V. Image Convolution with CUDA [Электронный ресурс] / V. Podlozhnyuk, L. Howes, M. Harris, E. Young. - 2007. - Режим доступа: http://developer.download.nvidia.eom/compute/cuda/l. 1 -
Beta/x86_64_website/projects/convolutionSeparable/doc/convolutionSeparable.pdf
91. R600 Technology. R600 Family Instruction Set Architecture [Электронный ресурс]. - 2007. - Режим доступа: http://www.x.org/docs/AMD/r600isa.pdf
92. R700-Family Instruction Set Architecture [Электронный ресурс]. - 2011. - Режим доступа: http://developer.amd.com/gpu_assets/R700-family_instructionjset_architecture.pdf
93. Ramachandran, V. Emulations Between QSM, BSP and LogP: A Framework for General-Purpose Parallel Algorithm Design / V. Ramachandran, B. Grayson, M. Dahlim // Journal of Parallel and Distributed Computing. - №12(63). -2003.-P. 1175-1192.
94. Robinson, A. Random-Access Stored-Program Machines, an Approach to Programming Languages / A. Robinson, C. Elgot // Journal of the Association for Computing Machinery. - №11(4). -1964. - P. 365-399.
95. Rolfes, T. Artificial Neural Networks on Programmable Graphics Hardware / T. Rolfes // Game Programming Gems 4. - 2004. - P. 373- 377.
96. Ruetsch, G. Optimizing Matrix Transpose in CUDA [Электронный ресурс] / G. Ruersch, P. Micikevicius. - 2009. - Режим доступа: http://www.cs.colostate.edu/~cs675/MatrixTranspose.pdf
97. Sanders, J. CUDA by example: an introduction to general-purpose GPU programming / J.Sanders, E. Kandrot. - Addison-Wesley Professional, 2010. - 312 p.
98. Saunders, N. eggplant for Cross Platform Test Automation [Электронный ресурс] / N. Saunders. - 2013. - Режим доступа: http://assets-production.govstore.service.gov.uk/Giii%20Attachments/TestPlant%20Ltd/Bids/eggPla nt%20for%20cross%20platform%20test%20automation.pdf
99. Sengupta, S. A Work-Efficient Step-Efficient Prefix-Sum Algorithm / S. Sengupta, A.E. Lefohn, J.D. Owens // Proceedings of the 2006 Workshop on Edge Computing Using New Commodity Architectures. - 2006. - P. 26-27.
100. Skillicorn, D.B. Questions and Answers about BSP / D.B. Skillicorn, H. Jonathan, W.F. McColl // Scientific Programming. - №3(6). - 1997. - P. 249-274.
101. Smotherman, M. Understanding EPIC Architectures and Implementations [Электронный ресурс] / M. Smotherman. - 2002. - Режим доступа: http://people.cs.clemson.edu/~mark/464/acmse_epic.pdf
102. Turell, S.G. Performance Prediction and Evaluation Tools / S.G. Turell, J.L. Mancho. - Barcelona: Departament d'Arquitectura de Computadors UPC, Universität Politécnica de Catalunya, 2003. - 170 p.
103. Valiant, L.G. A Bridging Model for Parallel Computation / L.G. Valiant // CACM. - №8(33). - 1990. - P. 103-111.
104. Viola, P. Rapid Object Detection using a Boosted Cascade of Simple Features / P. Viola, M. Jones // Computer Vision and Pattern Recognition. - Vol.1. -2001.-P. 511-518.
105. Wong, H. Demystifying GPU Microarchitecture through Microbenchmarking / H. Wong, M.M. Papadopoulou, M. Sadooghi-Alvandi et al. // Proceedings of International Symposium on Performance Analysis of Systems and Software. - 2010. - P. 235-246.
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.