Компания Nvidia внесла усовершенствования в базовый программный инструментарий CUDA, упрощающий написание программ для гибридных сред, что в конечном итоге должно привести к ускорению обработки данных центральными и графическими процессорами.
В новой версии CUDA 6 разработка программ для суперкомпьютеров, серверов, ПК и, в меньшей степени, смартфонов будет проще. Цель совершенствования CUDA — предоставить программистам базовые инструменты, управляющие передачей нагрузки по обработке данных с центральных процессоров на графические, и тем самым повысить быстродействие графических приложений и приложений технического характера.
CUDA 6 поддерживает унификацию памяти, поэтому доступность памяти графического процессора стновится такой же, как и память центрального процессора. Ранее данные приходилось передавать с центральных процессоров на графические для обработки, после чего они оправлялись обратно, и в результате формировались два пула данных. Благодаря поддержке унифицированной памяти разработчику не надо специально программировать этот процесс, а можно просто обращаться к функциям обработки в графических процессорах.
Функция управления памятью автоматически определяет, нужно ли передавать данные в память центрального или графического процессора, пояснил Самит Гупта, генеральный менеджер Nvidia по продуктам Tesla Accelerated Computing.
«Разработчик может не беспокоиться о вопросах, связанных с памятью графических и центральных процессоров, поскольку это решается не программным путем, а директивами CUDA, — пояснил Дэн Олдс, главный аналитик фирмы Gabriel Consulting Group. — Модернизация CUDA носит эволюционный, а не революционный характер».
Например, графические процессоры часто используются в серверах для виртуализации рабочих столов и автоматизации выделения памяти, и теперь можно рассчитывать на ускорение развертывания экземпляров ОС на виртуальных машинах, отметил Олдс.
Намеченный к выпуску процессор Tegra 6 для мобильных систем под кодовым названием Parker будет объединять в общий пул память графического и центрального процессоров мобильных устройств, серверов и ПК для расширения адресуемой памяти, доступной для программ. Сейчас память графических и центральных процессоров — это независимые ресурсы, и CUDA 6 призвана устранить это неудобство на программном уровне до тех пор, пока не будут разработаны аппаратные средства.
В ряде наиболее мощных суперкомпьютеров графические процессоры и сопроцессоры используются для обработки данных, чтобы повысить быстродействие. В предыдущей версии CUDA, 5.5, имелась поддержка центральных процессоров в архитектуре ARM. В CUDA 6 улучшена также работа с библиотеками, что может ускорить обработку данных на графических процессорах.