Главная страница
Навигация по странице:

  • Ответы Что такое КУДА

  • Thread – это

  • Какие блоки используются в архитектуре Фоннеймана

  • Что требуется для разделенной памяти Оно требует синхронизации, а то будет все съезжать и поттормаживать Сколько записей в глобальной памяти

  • Скорость, доступность, функционал: Скорость

  • Скорость, доступность, функционал: -скорость

  • Ответы

  • РВС. Контрольные вопросы по всем лабам. 1 лаба вопросы Какая версия compute capability у архитектуры nvidia fermi


    Скачать 22.62 Kb.
    Название1 лаба вопросы Какая версия compute capability у архитектуры nvidia fermi
    Дата22.11.2021
    Размер22.62 Kb.
    Формат файлаdocx
    Имя файлаКонтрольные вопросы по всем лабам.docx
    ТипДокументы
    #278596

    1 лаба вопросы

    1. Какая версия compute capability у архитектуры NVIDIA Fermi?

    1. Какая максимальная размерность блока у GPU с compute capability 3.0?

    1. Предположим, вы используете одномерную сетку и блок. Если максимальная размерность сетки на устройстве 65535, а максимальная размерность блока 512, какое максимальное количество нитей может быть запущено на GPU?

    1. При каких условиях программист предпочтет не запускать максимальное количество нитей?

    1. Что может помешать программе запустить максимальное количество нитей?

    1. Что такое разделяемая память?

    1. Что такое глобальная память?

    1. Что такое константная память?

    1. Что характеризует размер варпа в GPU?

    1. Поддерживаются ли числа двойной точности в GPU версии 1.3?

    Ответы

    Что такое КУДА?

    КУДА – это програмно проектная архитектура, она нужна для выполнения видеопроцессов на НВИДИА

    Thread – это?

    Thread – это нить, а нить - это виртуальный процессор Фоннеймана

    С какой версии поддерживаются числа двойной точности?

    С версии 1.3

    Какие блоки используются в архитектуре Фоннеймана?

    Оперативная память, устройства ввода-вывода, управляющее устройство (устройство управления процессором).

    УУ организует пошаговое выполнение программы. Оно последовательно загружает машинный код, распознает его и посылает в АЛУ на выполнение той или иной операции.

    АЛУ выполняет Арифметическо-логические опреации над операндами, находящиеся в памяти или в регистрах

    Что требуется для разделенной памяти?

    Оно требует синхронизации, а то будет все съезжать и поттормаживать

    Сколько записей в глобальной памяти

    Каждый блок нитей выполнит по одному атомарному сложению в ячейку памяти

    1) Версия 2.1 compute capability у архитектуры NVIDIA Fermi

    2) Размерность блока 1024х1024х64

    У версии 3.0 1024 х 64 х 64

    3) Для второй около 4 млн , а для третьего 33 млн с чем-то можно запустить

    4) При условии , если задача слишком проста и нет необходимости запускать все нити или же слишком мало информации

    5)

    6) Разделяемая память (shared memory) относиться к быстрому типу памяти. Разделяемую память рекомендуется использовать для минимизации обращение к глобальной памяти, а так же для хранения локальных переменных функций. Адресация разделяемой памяти между нитями потока одинакова в пределах одного блока, что может быть использовано для обмена данными между потоками в пределах одного блока. Для размещения данных в разделяемой памяти используется спецификатор __shared__.

    Скорость, доступность, функционал:

    Скорость: быстрая

    Доступность: в потоках в пределах одного блока

    Функционал: чтение запись

    7) Глобальная память (global memory) – самый медленный тип памяти, из доступных GPU. Глобальные переменные можно выделить с помощью спецификатора __global__, а так же динамически, с помощью функций из семейства cudMallocXXX. Глобальная память в основном служит для хранения больших объемов данных, поступивших на device с host’а, данное перемещение осуществляется с использованием функций cudaMemcpyXXX. В алгоритмах, требующих высокой производительности, количество операций с глобальной памятью необходимо свести к минимуму.

    Скорость, доступность, функционал:

    Скорость: самый медленный

    Доступность: Всем потокам

    Функционал: Хранит большие обьемы данных , которые поступают с хоста . Чтение , запись

    8) Константная память (constant memory) является достаточно быстрой из доступных GPU. Отличительной особенностью константной памяти является возможность записи данных с хоста, но при этом в пределах GPU возможно лишь чтение из этой памяти, что и обуславливает её название. Для размещения данных в константной памяти предусмотрен спецификатор __constant__. Если необходимо использовать массив в константной памяти, то его размер необходимо указать заранее, так как динамическое выделение в отличие от глобальной памяти в константной не поддерживается. Для записи с хоста в константную память используется функция cudaMemcpyToSymbol, и для копирования с device’а на хост cudaMemcpyFromSymbol, как видно этот подход несколько отличается от подхода при работе с глобальной памятью.

    Скорость, доступность, функционал:

    -скорость: быстрая

    -доступность: данная память доступна для всех потоков

    -функционал: она доступна только для чтения. Единственная его функция – чтение

    Особенность константной памяти является возможность записи данных с хоста

    9) Варп (Warp) — 32 последовательно идущих треда, выполняется физически одновременно.

    Максимум 32

    10) Да она поддерживается…

    с версии 1.3 – операции над числами с плавающей точкой двойной точности;

    2 лаба

    (1) Сколько операций с плавающей точкой выполняется в вашем ядре сложения векторов? ОБЪЯСНИТЬ.

    (2) Сколько чтений из глобальной памяти производится вашим ядром? ОБЪЯСНИТЬ.

    (3) Сколько записей в глобальную память производится вашим ядром? ОБЪЯСНИТЬ.

    (4) Опишите возможный вариант оптимизации ядра для увеличения производительности.

    (5) Назовите три приложения сложения векторов.

    Ответы:

    Вектора:
    Действия с плавающей точкой - сколько арифм действий выполняется. n действий. По одному на каждую пару элементов векторов. Чтений - 2n. Записей n.

    является библиотекой от расширения CUDA C. Она нужна для того, чтобы можно было получать встроенные модули (например, типы данных) и была возможность использования API CUDA во время выполнения компиляции с хоста.

    3 лаба

    (1) Сколько операций с плавающей точкой выполняется в вашем ядре сложения векторов? ОБЪЯСНИТЬ.

    (2) Сколько чтений из глобальной памяти производится вашим ядром? ОБЪЯСНИТЬ.

    (3) Сколько записей в глобальную память производится вашим ядром? ОБЪЯСНИТЬ.

    (4) Каким образом функциональный стиль кода сложения векторов в Thrust делает разработку проще или сложнее?

    Ответы:

    Операций и записей сколько?

    Опреаций 3 с плающей точкой , на каждый пиксель по 3

    На сколько ты умножаешь?

    Ф-это слово фреквенси (интенсивность)

    Записей 1

    Thrust удобен возможностью быстро реализовывать необходимые вычислительные алгоритмы в более простой и читаемой форме, чем явное программирование на CUDA. 

    4 лаба

    (1) Сколько операций с плавающей точкой выполняется в вашем ядре? ОБЪЯСНИТЬ.

    (2) Какой формат будет более эффективным для преобразования цвета: 2D матрица, где каждый элемент представляет собой значение RGB, или 3D матрица, где каждый срез по оси Z обозначает цвет? То есть будет ли лучше чередование цветов? Вы можете назвать приложение, где противоположный вариант будет лучшим?

    (3) Сколько чтений из глобальной памяти производится вашим ядром? ОБЪЯСНИТЬ.

    (4) Сколько записей в глобальную память производится вашим ядром? ОБЪЯСНИТЬ.

    (5) Опишите, какие оптимизации можно сделать в вашем ядре, чтобы достичь увеличения производительности.

    (6) Назовите три применения преобразования цветов.

    Я перевозу сначала , получаю фото и каждый пиксель перевожу в определенный оттенок серого

    5 действий

    1 чтение

    1 запись, т.к я записываю на пиксель

    5 лаба

    (1) Сколько операций с плавающей точкой выполняется в вашем ядре? ОБЪЯСНИТЬ.

    (2) Сколько чтений из глобальной памяти производится вашим ядром? ОБЪЯСНИТЬ.

    (3) Сколько записей в глобальную память производится вашим ядром? ОБЪЯСНИТЬ.

    (4) Опишите, какие оптимизации можно сделать в вашем ядре, чтобы достичь увеличения производительности.


    написать администратору сайта