The OpenNET Project / Index page

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

AMD развивает основанный на LLVM универсальный компилятор C++ и CUDA для CPU/GPU

18.11.2015 18:56

Компания AMD представила инициативу Boltzmann, в рамках которой ведётся разработка средств для организации гибридных вычислений с привлечением CPU и GPU. В частности, в рамках инициативы развивается универсальный компилятор HСC (Heterogeneous Compute Compiler), способный генерировать код для CPU и GPU на основании исходных текстов на языке C++, а также транслятор, преобразующий исходные тексты с расширениями CUDA. Одновременно компания AMD представила новую линейку серверных GPU FirePro S, которые в свете предоставления возможности использования приложений на базе технологии CUDA могут составить конкуренцию компании NVIDIA в области построения высокопроизводительных вычислительных систем.

Компилятор HCC продолжает развитие ранее представленного компилятора HSA, основанного на наработках проекта LLVM/Clang. В HCC компания AMD попыталась устранить основной барьер, мешающий продвижению развиваемых в AMD технологий гибридных вычислений, - излишнюю усложнённость предложенного решения. HCC даёт разработчикам более высокоуровневые средства разработки, позволяя использовать язык C++, вместо низкоуровневой разработки на Си с применением OpenCL.

В опубликованной на днях спецификации OpenCL 2.1 привязка к языку Си была преодолена благодаря появлению ядра OpenCL C++ и средств для использования расширений для языка C++, но OpenCL всё равно остаётся слишком низкоуровневым API, а также весьма неохотно внедряется в продуктах NVIDIA (NVIDIA ограничивается поддержкой OpenCL 1.2), что приводит к его непопулярности в среде разработчиков высокопроизводительных приложений (в top500 крупнейших кластеров карты NVIDIA используются на 68 системах, а AMD на 3). Компания AMD, которая не отказывается от OpenCL как единого стандарта, в компиляторе HCC попыталась найти разумный выход: разработчик получил возможность применения одного компилятора и одной кодовой базы на языке C++ без выделения в отдельные файлы компонентов, выполняемых на стороне GPU.

Параллелизм достигается благодаря введению расширений HIP (Heterogeneous-compute Interface), которые предлагают два метода разработки. Первый через применение специальных параллельных операций, таких как parallel_for_each, для определения выполняемых параллельно сегментов кода и методов взаимодействия с остальным кодом программы. И второй через использование высокоуровневого API Parallel STL (Standard Template Library), развиваемого в рамках спецификаций C++ 17 и определяющего ряд стандартных функций, выполняемых на стороне GPU.

Для решения проблем с совместимостью AMD разработал инструментарий HIPify для трансляции кода с расширениями CUDA, позволяющий преобразовывать CUDA-проекты в HIP для их последующей компиляции для GPU AMD и, наоборот, транслировать HIP в CUDA для выполнения на GPU NVIDIA. Таким образом удалось добиться полной совместимости с CUDA и предоставить разработчикам возможность использования уже имеющихся CUDA-программ на GPU AMD. При этом AMD поддерживает лишь трансляцию на уровне исходных текстах, не предоставляя средств для выполнения уже скомпилированных CUDA-программ.

Компания AMD также развивает специализированный 64-разрядный драйвер для Linux, ориентированный на оснащение узлов вычислительных кластеров и запуск приложений в окружении HSA+, примечательном использованием единого для CPU и GPU унифицированного адресного пространства (GPU и CPU могут напрямую обращаться к общим блокам памяти), что существенно упрощает программирование и приближает доступные для GPU AMD средства к возможностям технологии CUDA, используемой компанией NVIDIA. HSA+ дополняет стандартное окружение HSA (Heterogeneous System Architecture) расширениями, обеспечивающими поддержку дискретных GPU (HSA сосредоточен на APU).

  1. Главная ссылка к новости (http://www.anandtech.com/show/...)
  2. OpenNews: NVIDIA передала CUDA Compiler в руки сообщества LLVM
  3. OpenNews: В рамках проекта Gdev подготовлена открытая реализация фреймворка CUDA
  4. OpenNews: Компания NVIDIA открывает исходный код компилятора CUDA
  5. OpenNews: Опубликована спецификация гетерогенных вычислительных систем HSA 1.0
  6. OpenNews: AMD, ARM и TI приступили к развитию стандартов для гетерогенных вычислительных систем (CPU+GPU)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43336-hcc
Ключевые слова: hcc, gpu, hip, cida, compile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 19:29, 18/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Интересно, на Xeon PHI будет доступна поддержка OpenCL C++?
     
     
  • 2.33, 123 (??), 18:23, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну раз amd64 используют с кросслицензированием, то почему бы не нет.
     

  • 1.3, eRIC (ok), 19:54, 18/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    думаете NVIDIA нужно будет это от AMD, который догоняет? :)
     
     
  • 2.11, Аноним (-), 22:18, 18/11/2015 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Думаете большинству линуксоидов интересно, нужно ли это NVIDIA ?
     
     
  • 3.13, Аноним (-), 00:03, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://www.youtube.com/watch?v=_36yNWw_07g

     
  • 3.16, Аноним (-), 01:28, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Думаете, существует большинство линуксоидов?
     
     
  • 4.17, Аноним (-), 01:32, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Думаете, среди линуксоидов только меньшинства?
     
     
  • 5.18, Аноним (-), 01:37, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Думаете, среди линуксоидов только меньшинства?

    Те, кого здесь называют "альтернативно одарёнными", перекладывая со своей больной головы на здоровую.


     
  • 4.39, Тузя (ok), 09:36, 21/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да оно существует, это объективная реальность. Не представляю корпоративную инфраструктуру без Linux.
     
  • 2.19, Anonplus (?), 02:20, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Думаете нам нужна мерзкая проприетарщина NVIDIA CUDA? Если да, то вы ошиблись ресурсом, проприетарастам здесь не рады.
     
     
  • 3.25, redwolf (ok), 07:26, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Думаете нам нужна мерзкая проприетарщина NVIDIA CUDA? Если да, то вы ошиблись
    > ресурсом, проприетарастам здесь не рады.

    К сожалению, аналогов, которые способны соперничать с вычислительными сопроцессорами Nvidia, пока нет.
    Из реальных конкурентов есть Intel Xeon Phi, но пока производительность на реальных задачах пониже. В приукрашенном Nvidia  варианте это  выглядит так:
    http://www.nvidia.com/object/justthefacts.html
    По факту не совсем, но близко.

    А создание универсальных компиляторов тут вообще притом, что задачу хорошо бы запускать на всех вычислительных ресурсах кластера, а не только на сопроцессорах и не писать для этого вторую реализацию для CPU, третью для Xeon Phi и тп. Здорово, что хоть кто-то этим занимается, а не пилит свои vendor locked реализации.

     
     
  • 4.30, Аноним (-), 15:41, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так новость о какой железке?
     
  • 4.35, Anonplus (?), 19:40, 20/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > К сожалению, аналогов, которые способны соперничать с вычислительными сопроцессорами
    > Nvidia, пока нет.

    Это, конечно, аргумент, но истинно преданный идее СПО человек всё равно не станет пользоваться проприетарщиной. Например, именно поэтому Ричард Столлман до сих пор работает на древнем ноутбуке, хотя, другой на его месте мог бы сказать "ну, раз современные ноуты все сплошь несвободные, придётся пользоваться несвободным, раз свободных аналогов нет".

     

  • 1.4, Baka (?), 19:58, 18/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Серверные GPU! Теперь поиграем...
    Я понимаю зачем они, но всё равно дико как-то...
     
     
  • 2.5, Аноним (-), 20:05, 18/11/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Унифицированный вычислительный модуль, давно уже не просто GPU, да и без видео вывода они в серверах - просто чип на плате.
     
  • 2.24, redwolf (ok), 06:49, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ну какбе в мощные модели серверов от IBM на архитектуре power8 опционально ставятся видеокарты (естественно не те, что для вывода графики, а вычислительные сопроцессоры). И на них запускается java-машина, и работает по обещаниям IBM довольно шустро.

    Интересная ссылка по теме:
    http://devblogs.nvidia.com/parallelforall/next-wave-enterprise-performance-ja

     

  • 1.6, анончик (?), 20:12, 18/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Прогнулись...
     
     
  • 2.10, Аноним (-), 21:35, 18/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Кто? Кронос под АМД? Вряд ли, это обоюдная любовь...
     

  • 1.7, Аноним (-), 20:32, 18/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хорошая инициатива под названием Bolt :D
     
  • 1.8, АнонимХ (??), 20:33, 18/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Используются ли данные наработки в приставках на Ягуаре?
     
  • 1.9, Аноним (-), 20:52, 18/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Здорово, ничего не надо подключать, проверять, не нужны драйвера и т.п., скомпилировалось -> будет работать. Вообще эту несправедливую систему с драйверами для видеокарт давно надо было ликвидировать, все взаимодействия с оборудованием с повышенными требованиями к производительности просто обязаны производиться прямыми вызовами инструкций, как в случае с ЦП.
     
  • 1.12, Вареник (?), 22:39, 18/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы сразу поставили ЦП и разъем памяти на видеокарту в едином корпусе.

    Сейчас комп состоит из нескольких радиаторов (4-х: ЦП, минимум один на матери, видеокарте, в БП), за каждым из которых надо следить чтобы не перегрелся, свое питание, все это образует островки железа и кучу соплей в большом корпусе.

    Вместо одного радиатора, на который привинчены все грелки, к которым пристыкована плата, все это размером с кирпич при тех же пиковых 500 ваттах.

     
     
  • 2.14, maxis11 (ok), 00:04, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    "Лучше бы сразу поставили ЦП и разъем памяти на видеокарту в едином корпусе."

    гуглим hsa ииии....
    "Heterogeneous System Architecture (HSA) is a computer processor architecture that integrates central processing units and graphics processors on the same bus, with shared memory and tasks."

     
  • 2.31, Аноним (-), 15:44, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > все это размером с кирпич при тех же пиковых 500 ваттах.

    Пока ещё не дошли до того что всех устраивает однотипный модуль, каждый вендор свои наборы городит.


     

  • 1.15, A.Stahl (ok), 00:55, 19/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Больцман в гробу вращается. Вместе в Вейерштрассом.
    Или это не тот Больцман, а какой-то АМДшный программист?
     
     
  • 2.34, анонимус (??), 11:56, 20/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Больцман в гробу вращается. Вместе в Вейерштрассом.
    > Или это не тот Больцман, а какой-то АМДшный программист?

    кто такой этот больцман? дядя ваш чтоли больцман?
    тот, который вместе с вейерштрассом был больцано

     

  • 1.21, Аноним (-), 03:56, 19/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    просто поставь Intel
     
     
  • 2.27, Аноним (-), 10:48, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Это в том числе и для Intel Xeon PHI. Фанатики, учим мат.часть!
     

  • 1.26, Аноним (-), 07:47, 19/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С исходниками на CUDA? Похоже что амбиционзый отказ от релиза почти готового ATi Stream был поспешным.
     
  • 1.28, iZEN (ok), 11:55, 19/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Пользуюсь карточкой NVIDIA. Для компиляции графической подсистемы DRI/Mesa теперь требуется LLVM/Clang 3.7 (в системе идёт версией ниже). Зачем оно нужно, спрашивается, если графические адаптеры AMD не задействуются, а весь 3D выполняется силами драйвера NVIDIA с АППАРАТНОЙ поддержкой более новой версии OpenGL, чем у полу-программной Mesa?
     
     
  • 2.29, Аноним (-), 12:44, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А это тебе лучше знать. Как это ты вообще умудрился поставить mesa совместно с проприетарными дровами? Они же конфликтуют.
     
     
  • 3.37, iZEN (ok), 23:10, 20/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Как это ты вообще умудрился поставить mesa совместно с проприетарными дровами? Они же конфликтуют.

    Это у вас на старье конфликтуют. У меня всё работает.

    % pkg info -x dri
    dri-10.6.9,2
    dri2proto-2.8
    nvidia-driver-346.96
    xorg-drivers-7.7_3

    % glxinfo | grep OpenGL
    OpenGL vendor string: NVIDIA Corporation
    OpenGL renderer string: GeForce GTX 750/PCIe/SSE2
    OpenGL core profile version string: 4.4.0 NVIDIA 346.96
    OpenGL core profile shading language version string: 4.40 NVIDIA via Cg compiler
    OpenGL core profile context flags: (none)
    OpenGL core profile profile mask: core profile
    OpenGL core profile extensions:
    OpenGL version string: 4.5.0 NVIDIA 346.96
    OpenGL shading language version string: 4.50 NVIDIA
    OpenGL context flags: (none)
    OpenGL profile mask: (none)
    OpenGL extensions:
    OpenGL ES profile version string: OpenGL ES 3.1 NVIDIA 346.96
    OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
    OpenGL ES profile extensions:

     
  • 2.36, Andrey Mitrofanov (?), 22:29, 20/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Пользуюсь карточкой NVIDIA. Для компиляции графической подсистемы DRI/Mesa теперь требуется
    > LLVM/Clang 3.7 (в системе идёт версией ниже). Зачем оно нужно, спрашивается,
    > если графические адаптеры AMD не задействуются,

    Они над тобой издеваются! Не дали USE-флага сборки без llvmpipe-а или как там его и, хитро так подмигивая, предлагают подождать следующего релиза с лапочкой 3.7 в базе и новой месой, требующей ещё более нового эппле-прогрессора, да?

    А, да, чуть не пропустил -- меса-то не в базе же, да?   Тогда "всё норм"!   Вона "не в базе" даже GPLv3 gcc  --  и ничего, правда, именно так и надо?

     
     
  • 3.38, iZEN (ok), 23:14, 20/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Пользуюсь карточкой NVIDIA. Для компиляции графической подсистемы DRI/Mesa теперь требуется
    >> LLVM/Clang 3.7 (в системе идёт версией ниже). Зачем оно нужно, спрашивается,
    >> если графические адаптеры AMD не задействуются,
    > Они над тобой издеваются! Не дали USE-флага сборки без llvmpipe-а или как
    > там его и, хитро так подмигивая, предлагают подождать следующего релиза с
    > лапочкой 3.7 в базе и новой месой, требующей ещё более нового
    > эппле-прогрессора, да?

    Если точнее, то dri-10.6.9 на LLVM 3.6 завязан:

    % portmaster -e llvm36-3.6.2_2
    ===>>> Warning: Ports with dependencies on llvm36-3.6.2_2:
    libEGL-10.6.9
    dri-10.6.9,2

    > А, да, чуть не пропустил -- меса-то не в базе же, да?

    Догадливый!

    >   Тогда "всё норм"!   Вона "не в базе"
    > даже GPLv3 gcc  --  и ничего, правда, именно так
    > и надо?

    GCC вообще не нужен, если честно. Без него обходимся.

     
     
  • 4.40, Perl_Jam (?), 04:27, 22/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    отлично живет без ллвм, не путайте. а кто как порт сделал - ссзб. про гцц без коментариев, ллвм ненужен
     

  • 1.32, vlst (?), 16:59, 19/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    лучше бы они драйверами занялись, может быть тогда и на суперкомьютерах бы больше использовали
     
  • 1.41, Вареник (?), 13:05, 16/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >> лучше бы они драйверами занялись, может быть тогда и на суперкомьютерах бы больше использовали

    Так они ими и занимаются. С массивами ядер у них все хорошо, с дровами пока так себе.

     

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



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

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