Skip to content

Latest commit

 

History

History
49 lines (37 loc) · 2.71 KB

README.md

File metadata and controls

49 lines (37 loc) · 2.71 KB

Программирование на видеокартах: проекты по высокопроизводительным вычислениям

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

Содержание репозитория

  1. Jacobi3D Benchmark - реализация трёхмерной итерационной схемы Якоби:

    • Сравнение CPU (OpenMP) и GPU (CUDA) реализаций
    • Анализ производительности для различных размеров CUDA-блоков
    • Ускорение до 6.35x на GPU
  2. ADI3D Benchmark - реализация метода переменных направлений (ADI):

    • Оптимизированная обработка трёхмерных данных
    • Сравнение производительности CPU/GPU
    • Ускорение до 1.35x на GPU

Технические детали

Все проекты включают:

  • Реализации для CPU (с OpenMP) и GPU (с CUDA)
  • Утилиты для сравнения производительности и точности
  • Гибкую систему сборки с Makefile
  • Поддержку как float, так и double precision вычислений
  • Скрипты для автоматического тестирования различных конфигураций

Требования

  • Компилятор с поддержкой C99 (gcc)
  • NVIDIA CUDA Toolkit
  • OpenMP
  • Linux (рекомендуется)

Как использовать

Для каждого проекта:

  1. Перейдите в соответствующую директорию (jacobi3d или adi3d)
  2. Соберите проект командой make
  3. Запустите тесты:
    • make run - базовое сравнение CPU/GPU
    • make test_blocks - тестирование различных размеров блоков

Результаты обучения

В ходе выполнения проектов были освоены:

  • Основы программирования на CUDA
  • Оптимизация вычислений для GPU
  • Методы анализа производительности
  • Особенности работы с трёхмерными данными
  • Техники сравнения CPU и GPU реализаций