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

  • Ход выполнения лабораторной работы

  • РВС 2 лаба. Лабораторная работа 2 Содержание Введение 3 Ход выполнения лабораторной работы 4 Заключение 7


    Скачать 68.25 Kb.
    НазваниеЛабораторная работа 2 Содержание Введение 3 Ход выполнения лабораторной работы 4 Заключение 7
    АнкорРВС 2 лаба
    Дата04.10.2021
    Размер68.25 Kb.
    Формат файлаdocx
    Имя файла2.docx
    ТипЛабораторная работа
    #240956


    Лабораторная работа №2

    Содержание


    1. Введение 3

    2. Ход выполнения лабораторной работы 4

    3. Заключение 7

















    Введение


    Технология CUDA появилась 2006 году и представляет из себя программно-аппаратный комплекс производства компании Nvidia, позволяющий эффективно писать программы под графические адаптеры. С 2006 года компания Nvidia обещает, что все графические адаптеры их производства независимо от серии будут иметь сходную архитектуру, которая полностью поддерживает программную часть технологии CUDA. Программная часть, в свою очередь, содержит в себе всё необходимое для разработки программы: расширения языка С, компилятор, API для работы с графическими адаптерами и набор библиотек.

    Ход выполнения лабораторной работы


    После установки CUDA Toolkit для Visual Studio 2019 Community. В данном типе проекта доступны дополнительные настройки для CUDA, позволяющие настроить параметры компиляции под GPU, в зависимости от типа GPU и т.д.
    Далее написан код программы на CUDA, который выводит на экран информацию об аппаратных возможностях GPU, таких например как:

    • Название устройства

    • Размер общей, глобальной памяти

    • Размер варпа

    • Максимальное количество потоков на блок

    • Максимальный размер сетки

    • Тактовая частота

    • Размер общей постоянной памяти

    • Вычислительные возможности

    #include

    #include
    int main()

    {

    int deviceCount;

    cudaDeviceProp deviceProp;
    //Сколько устройств CUDA установлено на PC.

    cudaGetDeviceCount(&deviceCount);
    printf("Device count: %d\n\n", deviceCount);
    for (int i = 0; i < deviceCount; i++)

    {

    //Получаем информацию об устройстве

    cudaGetDeviceProperties(&deviceProp, i);
    //Выводим иформацию об устройстве

    printf("Device name: %s\n", deviceProp.name);

    printf("Total global memory: %d\n", deviceProp.totalGlobalMem);

    printf("Shared memory per block: %d\n", deviceProp.sharedMemPerBlock);

    printf("Registers per block: %d\n", deviceProp.regsPerBlock);

    printf("Warp size: %d\n", deviceProp.warpSize);

    printf("Memory pitch: %d\n", deviceProp.memPitch);

    printf("Max threads per block: %d\n", deviceProp.maxThreadsPerBlock);

    printf("Max threads dimensions: x = %d, y = %d, z = %d\n",

    deviceProp.maxThreadsDim[0],

    deviceProp.maxThreadsDim[1],

    deviceProp.maxThreadsDim[2]);

    printf("Max grid size: x = %d, y = %d, z = %d\n",

    deviceProp.maxGridSize[0],

    deviceProp.maxGridSize[1],

    deviceProp.maxGridSize[2]);
    printf("Clock rate: %d\n", deviceProp.clockRate);

    }
    return 0;

    }
    Результаты выполнения программы показаны на рисунке 1.


    Рисунок 1 – Результаты выполнения программы





    Заключение


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

    Ответы на вопросы


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