Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
6. Суперскаляр и VLIW
В видео показано, как процессоры используют суперскалярное выполнение для обнаружения и извлечения параллелизма между двоичными инструкциями для повышения производительности. В нем обсуждается важность управляющей логики при определении случаев, когда инструкции могут выполняться одновременно, например, при отсутствии зависимостей между ними. Видео также представляет два примера конструкции процессора, суперскалярный и VLIW, причем последний перекладывает ответственность за обнаружение зависимостей на компиляторы, генерирующие длинные слова команд, которые должны выполняться параллельно. Несмотря на то, что VLIW уменьшает количество проверок во время выполнения, неиспользуемые места в длинном командном слове все же могут вызывать потери в исполнительном блоке.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
7. SIMD и аппаратная многопоточность
В видео объясняются два способа решения проблем параллелизма: одна инструкция, несколько данных (SIMD) и аппаратная многопоточность (SMT). SIMD позволяет аппаратным инструкциям выполняться параллельно для нескольких элементов данных, упрощая логику планирования и декодирования. SMT использует параллелизм на уровне потоков, одновременно выполняя независимые потоки инструкций, требуя дополнительных регистровых файлов и тщательного совместного использования кэша. В видео также обсуждается реализация планирования потоков с разделением по времени, когда потоки по очереди занимают путь данных процессора в циклическом режиме, уменьшая задержку и позволяя нескольким потокам одновременно обращаться к вычислительным блокам и системам памяти. В конечном счете, процессор может поддерживать столько потоков, сколько требуется, хотя прирост производительности может быть не таким значительным на однопоточном процессоре.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
8. Архитектура многоядерного процессора
В этом видео рассказывается об архитектуре многоядерных процессоров и их преимуществах, таких как несколько ядер, работающих независимо и совместно использующих некоторые компоненты, при этом каждое ядро имеет собственный конвейер и кэш данных. Важность иерархии кэш-памяти в сокращении разрыва в скорости между микропроцессором и доступом к памяти подчеркивается использованием нескольких уровней кэш-памяти, которые используют временную и пространственную локальность. Видео также затрагивает дизайн системы на кристалле, который объединяет различные функциональные блоки и интерфейсы в один чип для снижения стоимости и форм-фактора. В целом видео является полезным введением в сложности и компромиссы, связанные с проектированием многоядерных процессоров.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
9. Архитектура графического процессора
Ускоренный процессор (APU) представляет собой гетерогенный процессор с маломощными ядрами и блоками графического процессора на одном кристалле. Графические процессоры имеют большое количество шейдерных ядер, которые можно планировать с помощью инструкций, а их кэши, как правило, несогласованны, что упрощает их конструкцию и обеспечивает гораздо более высокую производительность при одновременной работе многих ядер. AMD и Nvidia используют небольшие вычислительные блоки для одновременной работы с несколькими фрагментами данных и имеют большие файлы регистров для поддержки быстрого переключения контекста. Докладчик также объясняет, как управлять потоком управления в архитектуре графического процессора, особенно при работе с инструкциями ветвления, которые могут давать неверные результаты, но программистам не нужно сильно беспокоиться об этих проблемах, поскольку поставщики процессоров уже предоставили логику управления в аппаратном обеспечении. В целом графические процессоры являются популярными процессорами для сложных рабочих нагрузок на современном рынке, особенно в области искусственного интеллекта и машинного обучения.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
10. Внутреннее устройство FPGA
В этом видео обсуждается архитектура и особенности программируемых вентильных матриц (FPGA). FPGA имеют программируемую логику, позволяющую перепрограммировать их для реализации новых функций, и имеют прямой доступ к данным через огромное количество входов и выходов (I/O). Структура таблицы поиска в ПЛИС состоит из нескольких уровней мультиплексоров, которые можно запрограммировать для определения логических функций. В FPGA используются программируемые регистры, которые можно использовать для счетчиков, регистров сдвига, конечных автоматов и функций DSP. Каждый прямоугольный блок на микросхеме представляет собой блок логической матрицы (LAB), причем каждый LAB содержит десять модулей адаптивной логики (ALM). FPGA используются в таких отраслях, как потребительские устройства, автомобилестроение, медицинское оборудование, связь и радиовещание.
и биты переноса, и как ввод в регистры может поступать от предыдущих логических элементов.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
11. Память OpenCL в системе GPU
Инструктор объясняет сопоставление памяти OpenCL с графическим процессором AMD и различные уровни памяти в системе с графическим процессором. Вычислительное устройство имеет командный процессор, который управляет директивами для вычислительных блоков, которые функционируют как ядра с несколькими дорожками SIMD, частными регистровыми файлами и частной памятью. Программа ядра предназначена для обеспечения автономных заданий, которые позволяют использовать все доступные ядра и уменьшают задержку доступа к памяти. Докладчик также упоминает концепцию арифметической интенсивности, которая относится к соотношению между вычислениями и движением оси памяти, и как она должна быть высокой, чтобы пропускная способность памяти графического процессора не была ограничивающим фактором.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
12. Пример OpenCL: умножение матриц
В этом видео показано умножение матриц как пример программирования OpenCL. Докладчик демонстрирует, как написан код C для создания независимых циклов, которые могут перемещаться по строкам и столбцам матрицы. Обсуждаются рабочие элементы и то, как их можно сопоставить с матричными элементами в OpenCL. Объясняется реализация ядра, включая аргументы функции ядра, ее вызов и ее тело. Докладчик показывает, как входная матрица сохраняется в одномерном массиве с использованием номеров строк и индексов для вычисления индексов. В конечном счете, функция ядра вычисляет скалярное произведение для получения элемента в выходной матрице. Подчеркивается линейный подход к хранению матриц в физической памяти.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
13. Структура программы OpenCL (часть 1)
В видеоролике «Структура программы OpenCL (часть 1)» объясняется процесс создания приложения OpenCL. Программа должна сначала запросить платформу OpenCL, чтобы понять ее ресурсы и создать контекст OpenCL и очередь команд. Затем создаются буферы для обмена данными между хостом и памятью устройства, а программа ядра компилируется в двоичный файл для выполнения на устройстве. Далее в видео объясняется, как создавать буферы только для чтения и только для записи, выделять место для выходных матриц и копировать результаты обратно на хост. Подчеркнута важность проверки вызовов API на успешное выполнение.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
14. Структура программы OpenCL (часть 2)
Третий шаг в программировании OpenCL включает компиляцию ядра, которая отличается для устройств FPGA, поскольку выполняется в автономном режиме. Программа создания CL с исходным кодом и C TX используется для создания программы, за которой следует программа сборки CL для сборки программы в двоичный файл. Правильная функция ядра выбирается с использованием соответствующей точки входа, а аргументы ядра должны быть инициализированы с помощью CL set аргумента ядра с правильным указателем. Докладчик подробно рассказывает о правильной настройке аргументов при умножении матриц. Затем они обсуждают настройку размеров локальной и глобальной рабочей группы, выполнение ядра и получение результатов с помощью CL в API буфера очереди. Наконец, спикер кратко упоминает о событиях в программировании OpenCL.
EECE.6540 Гетерогенные вычисления (Массачусетский университет Лоуэлла)
15. Демонстрация умножения матриц в OpenCL
Видео «Демонстрация умножения матриц OpenCL» объясняет процесс запуска примера умножения матриц с использованием платформы OpenCL. Он включает в себя несколько файлов исходного кода, таких как основная программа C для хост-стороны, программа ядра и make-файл. Видео охватывает различные аспекты инфраструктуры OpenCL, получение идентификаторов платформы и устройства, создание контекста OpenCL, объектов программы и ядра, управление буфером для хоста, а также создание и инициализацию буферов на устройстве. Докладчик также демонстрирует образец ядра, выполняющего операции скалярного произведения, и демонстрацию конечного результата на вычислительном движке AMD Radeon pro 575.