Исследования Университета штата Юта, спонсированные частично компанией NVIDIA, направлены на изучение ускорения ядра Linux с использованием ускорения графического процессора GPU. Вместо того чтобы просто позволить приложениям пользователя использовать огромную силу предлагаемых современных графических процессоров, исследователи надеются ускорить части ядра Linux запустив его прямо на GPU.
Из страниц исследования: “Идея проекта KGPU состоит в том, чтобы графический процессор GPU рассматривался в качестве вычислительного сопроцессора для операционной системы, позволяющего производить параллельные вычисления внутри ядра Linux. Это даст возможность использовать SIMD (или SIMT в CUDA) для ускорения функциональности ядра Linux и внести новые функциональные возможности, которые ранее считались слишком интенсивными вычислениями для ядра. Проще говоря, проект KGPU делает возможными векторные вычисления внутри ядра”.
Кроме того, “это позволяет по-настоящему распараллелить ядро Linux: не только обрабатывать несколько запросов одновременно, но также разделять одни большие запрашиваемые вычисления на части и распространять эти части через большое число ядер на GPU”.
Хотя это звучит как новая концепция, на данной стадии это скорее исследовательский проект. Существует несколько факторов, которые в принципе исключают проект KGPU из числа проектов, создающих основное направление в обозримом будущем. Большой проблемой является то, что ни один из открытых графических драйверов, поддерживаемых ядром Linux подсистемы DRM (Direct Rendering Manager) еще не способен поддерживать GPGPU. Запланирована поддержка для открытого языка вычислений OpenCL Gallium3D с трекером состояния, но она еще не скоро будет готова.
Другой проблемой является то, что эта текущая работа нацелена только на ядро Linux и призывает использовать CUDA с графическим процессором GPU. Эта работа спонсируется компанией NVIDIA, поэтому университет перешел на использование программно-аппаратной архитектуры, которая поддерживается только на оборудовании NVIDIA при использовании их последних проприетарных драйверов. Лучшим выбором был бы открытый язык вычислений OpenCL, который может работать как на AMD и графических процессорах NVIDIA, так и на открытом производственном уровне.
На данный момент в развитие проекта KGPU существует GPU-ускоренный AES шифр для использования зашифрованной файловой системой eCryptfs, которая показывает многообещающие результаты, учитывающие насколько хорошо современные графические процессоры могут работать с криптографией.
Лицам, заинтересованным в получении дополнительной информации о проекте KGPU для увеличения ядра Linux с помощью GPU, советуем посетить сервис для разработчиков программного обеспечения Google Code. Исходные коды также доступны на веб-сервисе для хостинга проектов и их совместной разработки GitHub. Было бы интересно посмотреть, как ядро Linux начинает использовать возможности обработки, предоставляемые современными графическими процессорами, но сначала открытые драйверы ядра должна быть улучшены и уметь обрабатывать открытый язык вычислений OpenCL и /или других интерфейсов GPGPU.