- •1. Предмет кг. Области применения кг. Совр. Тенденции развития кг.
- •2. История развития кг. Современные тенденции развития кг.
- •3. Основные понятия кг. Аппаратное обеспечение кг. Принципы формирования изображения.
- •4. Растровые графические дисплеи с регенерацией изображения.
- •5. Устройство электронно-лучевой трубки. Устройство цветной растровой элт. Системы с телевизионным растром.
- •7. Вывод изображения. Система черезстрочной развертки.
- •8. Мультимедиа.
- •9. Оборудование для компьютерной графики.
- •10. Аппаратные решения в компьютерной графике.
- •11. Архитектура рабочих станций. Графический ускоритель. Арi.
- •12. Архитектура графических рабочих станций. Технологии 3d графики.
- •13. Архитектура графических рабочих станций. Принципы конвейерной архитектуры.
- •14. Общие положения алгоритмов сжатия изображений.
- •15. Алгоритмы архивации без потерь: rle, lz/lzw, Хаффман.
- •16. Алгоритмы архивации с потерями, проблемы алгоритмов архивации с потерями. Основные идеи алгоритмов jpeg, фрактальный, волновой.
- •17. Геометрическое моделирование и решаемые им задачи.
- •18. Представление геометрических моделей. Полигональные сетки.
- •19. Аффинные преобразования, их свойства, однородные координаты.
- •20. Аффинные преобразования на плоскости.
- •21. Аффинные преобразования в пространстве. Использование матричного представления. Составные аффинные преобразования в пространстве.
- •22. Проецирование. Общий вид преобразований в пространстве. Виды проекций.
- •23. Этапы создания графического объекта. Преобразование положения объекта. Понятие камеры. Особенности матричных преобразований.
- •24. Понятие растрового алгоритма. Понятие связности. Основные требования, предъявляемые к растровым алгоритмам.
- •25. Растровое представление отрезка: постановка задачи, простейший алгоритм, алгоритм цда.
- •26. Растровое представление отрезка: постановка задачи, алгоритм Брезенхейма.
- •27. Растровое представление отрезка: построение сглаженной линии (метод Флойда-Стейнберга, модификация алгоритма Брезенхейма, сглаживание всей сцены).
- •28. Растровое представление окружности: постановка задачи, простой алгоритм, алгоритм Брезенхейма.
- •29. Алгоритм закраски области, заданной цветом границы.
- •30. Nvidia cuda. Понятие gpgpu.
- •31. История расчётов на gpu. Области применения параллельных расчётов на gpu. История развития cuda.
- •32. Возможности nvidia cuda.
- •33. Преимущества и ограничения cuda.
- •34. Решения с поддержкой nvidia cuda.
- •35. Состав nvidia cuda.
- •36. Оптимизация программ на cuda.
36. Оптимизация программ на cuda.
Для эффективного использования возможностей CUDA нужно забыть про обычные методы написания программ для CPU, и использовать те алгоритмы, которые хорошо распараллеливаются на тысячи потоков. Также важно найти оптимальное место для хранения данных (регистры, разделяемая память и т.п.), минимизировать передачу данных между CPU и GPU, использовать буферизацию.
В общих чертах, при оптимизации программы CUDA нужно постараться добиться оптимального баланса между размером и количеством блоков. Большее количество потоков в блоке снизит влияние задержек памяти, но снизит и доступное число регистров. Кроме того, блок из 512 потоков неэффективен, сама NVIDIA рекомендует использовать блоки по 128 или 256 потоков, как компромиссное значение для достижения оптимальных задержек и количества регистров.
Среди основных моментов оптимизации программ CUDA: как можно более активное использование разделяемой памяти, так как она значительно быстрее глобальной видеопамяти видеокарты; операции чтения и записи из глобальной памяти должны быть объединены (coalesced) по возможности. Для этого нужно использовать специальные типы данных для чтения и записи сразу по 32/64/128 бита данных одной операцией. Если операции чтения трудно объединить, можно попробовать использовать текстурные выборки.