Главная » 2012»Август»11 » Увеличение FPS в играх в 6 раз даст новый язык программирования
Увеличение FPS в играх в 6 раз даст новый язык программирования
10:59
Переход от гонки за частотами к многоядерности вызвал необходимость в
углублённой разработке алгоритмов, направленных на параллелизм в
вычислениях. Особенно это стало актуально с началом эры
GPGPU-вычислений, для которых программирование на OpenCL становится всё
более популярным подходом. Но это не исключает того, что отдельные
разработчики пытаются разработать свой "идеальный" язык программирования
для многоядерных сред.
Как сообщает сайт EE Times,
группа студентов и аспирантов Лаборатории Искусственного Интеллекта и
Компьютерных Наук Массачусетского Технологического Института (MIT CSAIL)
предложила новый язык программирования для обработки изображений в
многоядерной среде. Язык, который назвали Halide (от общего названия
двухкомпонентных галогенидных соединений, что станет ясно ниже), решает
сразу две главных задачи. Во-первых, он проще в написании и проверке
кода, чем современные языки для обработки изображений. Во-вторых, новый
язык способен автоматически оптимизировать код, исключая трудоёмкие
ручные операции.
Согласно проведённым тестам, переписанные на Halide программы
оказались примерно на одну треть длиннее программ, написанных опытными
программистами на современных языках, но они показали выигрыш в скорости
расчётов в 2, 3 и даже 6 раз. В отдельном случае расчёты на Halide
оказались в 70 раз быстрее. Правда, при значительном превышении длины
кода.
Секрет нового языка, как говорят разработчики, кроется в его
двухмодульной основе. Программа на Halide состоит из двух секций. В
одной секции описан общий алгоритм вычислений, а в другой — планировщик
процесса. Причём команды в планировщике можно менять на ходу без
модификации кода всей программы. Это открывает путь к экспериментам с
новыми идеями, которые для проверки не потребуют переписывать программу
заново. Кроме того, меняя только блок планировщика (в котором расписаны
шаги по выполнению той или иной последовательности команд на конкретных
ядрах), можно организовать перенос расчётов на любую аппаратную
платформу.
Выглядит, что ни говори, заманчиво. Но погоду на рынке
программирования делают корпорации или крупные сообщества, до которых
разработчикам нового языка далеко.