The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Представлен свободный компилятор CUDA-приложений для многоядерных x86-процессоров

24.12.2009 14:05

Opensource проект Ocelot недавно выпустил JIT-компилятор для CUDA-приложений, позволяющий выполнять одну и ту же программу как на графических процессорах NVIDIA, так и на x86 процессорах, выступая в роли альтернативы технологии OpenCL. Компилятор переводит инструкции GPU в байткод LLVM, а затем генерирует собственный код для различных целевых архитектур. Компилятор был проверен более чем на 100 приложениях CUDA. Весь код системы доступен под лицензией BSD.

Предварительный список возможностей:

  • Для x86-процессоров:
    • Multi-Core выполнение. Выполнение частей CUDA-программ автоматически распределяется между всеми ядрами процессоров в системе.
    • Динамическая оптимизация. Оптимизация программных частей по мере их выполнения.
    • Поддержка всех особенностей CUDA. Это включает в себя текстуры, OpenGL, события, потоки, MALLOC-массивы и т.д.
    • Высокая производительность.
  • Для GPU:
    •   Доступна обертка для JIT-компилятора от NVIDIA, поддерживающего динамическую оптимизацию.
    •   Динамическая оптимизация. Оптимизация программных частей по мере их выполнения.
    •   Поддержка плавающих контекстов. Один хост-поток может управлять несколькими GPU-устройствами и указатели могут быть переданы от одного хост-потока к другому.
  • Режим Эмуляции:
    •  Поддержка проверки границ памяти
    •  Возможность собирать подробную информацию о производительности при работе программы
  • Ограничения:
    • В настоящее время поддерживается только Linux и требуется система с GCC-4.2 или более поздние версии.
    • Недоработана поддержка многопоточных приложений при использовании целевых GPU .
    • Нет поддержки SSE для x86-процессоров. Технология должна поддерживаться в следующей версии.


  1. Главная ссылка к новости (http://forums.nvidia.com/index...)
  2. OpenNews: Компания AMD выпустила Stream SDK 2.0 и открыла документацию на карты Evegreen
  3. OpenNews: Релиз Mesa 7.6. NVidia выпустила OpenCL драйвер и новые beta-драйверы для Linux
  4. OpenNews: Новая версия набора компиляторов LLVM Compiler 2.6
  5. OpenNews: NVIDIA представила первый в отрасли отладчик и профайлер для GPU
  6. OpenNews: Релиз Nvidia CUDA SDK 2.3 и видеодрайвера 190.16
Автор новости: PGCatabras
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/24804-NVIDIA
Ключевые слова: NVIDIA, CUDA, LLVM, OpenCL, compile, jit
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (26) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, pavlinux (ok), 15:03, 24/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачем нам CUDA приложения на x86, на оборот давай!!!
     
     
  • 2.3, Iv945n (ok), 15:43, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не знаю как устроены GPU и CUDA, возможно скажу глупость, но вот класснои логично бы было реализовать на уровне ядра ОС чтобы предназначенные для распределеиния вычислений современные ядра GPU виделись бы в системе вместе с ядрами CPU и на них можно было бы распараллеливать потоки обычных x86-программ...
     
     
  • 3.4, Аноним (-), 15:46, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Писатель-фантаст...
     
     
  • 4.6, ixrws (??), 16:14, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как-то не видно для этого преград, почему фантаст то сразу. Другое дело что производительность будет на ахти. Отчасти эти виртуальные ядра будут реализованы софтверным путём, как и в сабже. То есть тоже всё будет генерироваться динамически, и того чего не достаёт в gpu - будет перекладываться на cpu. В общем этакая продвинутая qemu:)
    Тут проблема скорее в другом, большинство x86 программ однопоточны и от того что в системе будет ещё пара сотен виртуальных ядер не будет ни типло ни холодно. А распарсить поток инструкций x86 так, чтобы раскидать выполнение одного потока на 100 gpu - почти невыполнимая задача.
     
     
  • 5.11, Iv945n (ok), 16:38, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут проблема скорее в другом, большинство x86 программ однопоточны

    Вы таки думаете это надолго?

    Мне кажется игнорировать многоядерность и писать программы без распоточивания всё больше и больше будет становиться нелепостью и уделом нигилистов.

     
     
  • 6.13, Аноним (-), 16:39, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >> Тут проблема скорее в другом, большинство x86 программ однопоточны
    >
    >Вы таки думаете это надолго?

    да. не все алгоритмы можно распараллелить:) поэтому от сотни ядер - ни холодно, ни жарко:D

     
  • 6.16, Юниксоид (??), 17:23, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Учите матчасть !
    http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA
     
     
  • 7.21, Iv945n (ok), 18:53, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Учите матчасть !
    >http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA

    А я знаю эту формулу, просто, видится мне, α достаточно часто достаточно мала.

     
  • 7.23, pavlinux (ok), 20:22, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Учите матчасть !
    >http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA

    Эта Манала не учитывает сложности алгоритмов и их количество.
    На комбайнах типа Roadrunner, Lomonosov или BlueGeen это да,
    а вот дома на венде.... я бы вывел как 1 + ln(p),


     
     
  • 8.25, alexxy (?), 00:12, 25/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А кого тут интересует венда Как бы она даже не имеет cpuaffinity и ее шедулер в... текст свёрнут, показать
     
     
  • 9.27, pavlinux (ok), 01:01, 25/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Так хорошо знаете WinAPI SetProcessAffinityMask SetThreadAffinityMask ... текст свёрнут, показать
     
  • 4.10, Аноним (-), 16:37, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Larabi. хотя x86 команды для этого как-то кривоваты чтоли:)
     
  • 4.12, Аноним (-), 16:38, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Писатель-фантаст...

    Larabee. опечатался.

     
  • 3.5, gp (??), 16:09, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Сделано уже нечто подобное, http://en.wikipedia.org/wiki/Grand_Central_Dispatch
     
  • 3.9, szh (ok), 16:37, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > распараллеливать потоки обычных x86-программ...

    там даже некоторые типы вычислительных программ не ускоряются, что уж про потоки обычных программ.

     
  • 2.8, ixrws (??), 16:21, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Зачем нам CUDA приложения на x86, на оборот давай!!!

    Это скорее к nvidia, это очень даже в их интересах. Пусть выпускают ion3, который будет выглядеть как материнка с tegra2, fermi, nand для прошивки, а в прошивке qemu, реализующий x86 поверх cuda, который будет работать поверх tegra и fermi:D
    Хороший ответ интелю на их заморочки с лицензиями. Если что - а мы не при делах, это ведь arm платформа, x86 там программная:D
    Хотя где-то это уже проходили...

     
     
  • 3.14, Аноним (-), 16:41, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>Зачем нам CUDA приложения на x86, на оборот давай!!!
    >
    >Это скорее к nvidia, это очень даже в их интересах. Пусть выпускают
    >ion3, который будет выглядеть как материнка с tegra2, fermi, nand для
    >прошивки, а в прошивке qemu, реализующий x86 поверх cuda, который будет
    >работать поверх tegra и fermi:D
    >Хороший ответ интелю на их заморочки с лицензиями. Если что - а
    >мы не при делах, это ведь arm платформа, x86 там программная:D
    >
    >Хотя где-то это уже проходили...

    ммм.Transmeta и Эльбрус.

     
     
  • 4.15, ixrws (??), 16:50, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >ммм.Transmeta и Эльбрус.

    Конечно, только успехи у них были отстойные, так что оставим вместо них ...

     
     
  • 5.17, anonymous (??), 18:17, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Это c каких пор у Эльбруса неправильные успехи? С Itanic не попутали?
     
     
  • 6.18, ixrws (??), 18:38, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    С тех самых пор, как они прекрасно продаются на рынке, выстесняя amd и intel, в параллельной реальности разумеется. Успехи в синтетике мало кому интересно. Когда можно будет купить это чудо по сравнимой с интелями цене, и чтобы оно давало хотя бы сравнимую производительности - тогда и поговорим.
    В этом смысле трансмета то хоть производили реальные чипы, которые было можно пощупать, хоть им и защитали слив.
     
     
  • 7.19, ixrws (??), 18:45, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >С тех самых пор, как они прекрасно продаются на рынке, выстесняя amd
    >и intel, в параллельной реальности разумеется. Успехи в синтетике мало кому
    >интересно. Когда можно будет купить это чудо по сравнимой с интелями
    >цене, и чтобы оно давало хотя бы сравнимую производительности - тогда
    >и поговорим.
    >В этом смысле трансмета то хоть производили реальные чипы, которые было можно
    >пощупать, хоть им и защитали слив.

    Чтобы меня не защитали за фанатика, объясню. Любая разработка имеет смысл, если её можно как-то применить. Рынку не нужны процессоры, которые будут быстрее корок в 10 раз, а стоить в 100 больше. Потому что легче купить 10 корок. Результаты эльбруса, также как и трансметы хороши в теории, и хороши в определённых задачах. Но их стоит рассматривать лишь тогда, когда оно будет стоить приемлемые деньги и давать приемлемую производительность во всех средних случаях. Хотя бы потому, что для числодробительства теперь уже есть gpu, и amd, и nvidia поддерживает opencl. И те кому надо что-то сильно посчитать - те выберут явно их, а не эльбрус, потому что сейчас это дешевле. И кстати эльбрусу довольно сложно будет потягаться с nvidia, amd на паралельных задачах, хотя бы потому что они под это изначально затачивались. Остаётся таки ниша - конкурировать с универсальными cpu. Вот поэтому надо подождать того момента, когда оно появится на полках за приемлемые деньги.

     
     
  • 8.20, Aleksey (??), 18:50, 24/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    В данный момент ситуация такая, что если вы сделаете процессор ядро которого буд... текст свёрнут, показать
     

  • 1.2, Аноним (-), 15:05, 24/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    а теперь пускай сделает для OpenCL
     
  • 1.7, ixrws (??), 16:17, 24/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну вот теперь будет чем проверить мифическую мощь cell:)

     
  • 1.24, Zenitur (?), 00:10, 25/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Проблема в том, что в GPU много-много процессоров...
    Ребята молодцы! Ещё их программа может помочь не быть привязанным только к NVIDIA, например, при расчёте физики в играх. А где же одноядерные системы?! Обделили?
     
  • 1.26, Alen (??), 00:37, 25/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Gentoo - пора неспешно начинать копить на термоядерную видеокарту! :)
    реальность далека, но тенденция очевидна ;)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру