CUDA / OpenCL в виртуальной машине / гипервизоре
кто-нибудь знает о любых решениях виртуализации, которые либо разрешают доступ CUDA/OpenCL напрямую, либо реализуют абстракцию CUDA/OpenCL.
UPDATE: спасибо тем, кто прокомментировал. Хотя классическая виртуализация "рабочего стола" была бы хорошей, я подозреваю, что такие, как Xen, были бы ближе к цели.
5 ответов
NVIDIA объявила о виртуализации GPU на новых картах Kepler этим летом в GTC.
http://www.nvidia.com/object/vgx-boards.html
http://www.gputechconf.com/page/home.html
Они не только объявили об этом, они продемонстрировали это вживую
вы можете использовать Xen VGA passthrough, чтобы иметь полный доступ и контроль над вашей графической картой внутри виртуальной машины. Вы можете найти более подробную информацию об этом здесь:http://vfio.blogspot.com/ (Посмотрите на VFIO GPU, как серии частей 1-5).
Я сделал это несколько раз, это не очень легко настроить, но это дает очень хорошие результаты (почти родной). Вот видео эксперемента я сделал двойной сквозной VGA с помощью Xen: http://www.youtube.com/watch?v=Gtmwnx-k2qg
Я не тестировал OpenCL или CUDA, но я уверен, что это сработает.
VirtualBox имеет PCI-passthrough, который позволяет использовать CUDA или OpenCL внутри виртуальной машины.
отказ от ответственности: vGPU является одним из проектов, над которыми я работал...
Если вы хотите получить доступ к GPU через API CUDA или OpenCL, я предлагаю вам взглянуть наhttp://www.zillians.com/vgpu
при простой реализации SR-IOV на GPU не будет работать не только из-за отсутствия поддержки в аппаратном обеспечении, но и возможности использования виртуализированных ресурсов GPU под гипервизором. Простой вопрос: сколько графических процессоров вы можете поместить в свое шасси? и поделитесь ими для каждого экземпляра VM, что значительно снизит производительность и будет иметь огромные требования к пропускной способности на коммутаторе PCI-E...имеет ли это смысл?
вот почему Amazon EC2 предоставляет только выделенные экземпляры GPU, а также причина, по которой мы решили реализовать VGPU, чтобы сделать GPU общим и масштабируемым вычислительным блоком.