The OpenNET Project / Index page

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

20.10.2011 12:59  Представлена открытая реализация OpenCL, базирующаяся на использовании LLVM

В списке рассылки разработчиков LLVM представлен проект Portable OpenCL, в рамках которого ведётся разработка полностью открытой и независимой реализации стандарта OpenCL, который определяет API и расширения языка Си для параллельного программирования с использованием как многоядерных CPU, так и GPU видеокарт.

Задача проекта - создать единую реализацию OpenCL, независимую от производителей графических ускорителей, которая позволила бы разработчикам не задумываться об особенностях той или иной реализации стандарта и применении специфических техник оптимизации. Для этого Portable OpenCL реализован по модульному принципу, позволяющему использовать различные бэкенды для выполнения OpenCL-ядер на разных типах графических и центральных процессоров. Пока проект находится в стадии активной разработки, поэтому доступен только один бэкенд, поддерживающий использование центрального процессора на базе архитектуры x86.

Также стало известно о появлении проекта по работе над открытой OpenCL-библиотекой, который имеет сходные цели, но гораздо меньшие масштабы. В рамках проекта libclc идет работа только над интерфейсом языка Си, описанном в стандарте, без реализации уровней OpenCL Platform и OpenCL Runtime. Для связи библиотеки с конкретной реализацией OpenCL от производителя используется простое переопределение функций. Цель проекта: позволить разработчикам использовать стандартные открытые средства разработки приложений вместо инструментов, предоставляемых производителями графических ускорителей.

Для генерации OpenCL-кода обе реализации используют инструментарий LLVM. Дополнительно можно отметить ещё один открытый проект FreeOCL, в рамках которого создаётся реализация спецификации OpenCL 1.1, нацеленная на использование CPU (x86, x86_64, ARM, PPC64). FreeOCL написан на языке С++ с задействованием некоторых нововведений стандарта C++11. Вместо специального или встроенного компилятора, FreeOCL полагается на использовании внешних компиляторов, такие как GCC 4.4, ICC 11.0, LLVM 2.8 и armcc.

Дополнение: Готовится к открытию под лицензией BSD ещё одна реализация OpenCL для многоядерных CPU. Компилятор проекта основан на использовании LLVM/Clang. Главной целью проекта является обеспечение максимально возможной производительности, полнота реализации OpenCL API ставится на второе место. По заявлению разработчиков в коде для обеспечения параллелизма активно используются инструкции SIMD (SSE и AVX), что позволило заметно увеличить производительность, которая в настоящее время опережает реализации OpenCL драйверов для CPU из состава AMD Stream SDK и Intel OpenCL SDK.

  1. Главная ссылка к новости (http://lists.cs.uiuc.edu/piper...)
  2. OpenNews: Компания Intel выпустила OpenCL SDK для Linux
  3. OpenNews: Вышла спецификация OpenCL 1.1, позволяющая задействовать GPU для вычислений
  4. OpenNews: AMD выпускает beta-версию системы параллельного программирования OpenCL
  5. OpenNews: Представлены финальные версии спецификации OpenCL 1.0 и OpenVG 1.1
  6. OpenNews: На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ядра Linux
Автор новости: Evgeny Zobnin
Тип: К сведению
Ключевые слова: opencl, llvm
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, anonymous, 13:45, 20/10/2011 [ответить] [смотреть все]
  • +3 +/
    Зашевелились, и это хорошо. Даже steckdenis обновил свой проект после долгой паузы http://cgit.freedesktop.org/~steckdenis/clover/commit/?id=c377dd4e18c7321db6f
     
  • 1.2, Zenittur, 13:52, 20/10/2011 [ответить] [смотреть все]
  • +1 +/
    На ЛОРе в обсуждении новости кто-то высказал интересную мысль. Благодаря свободной реализации OpenCL во всех дистрибутивах будет библиотека OpenCL сразу. Как сейчас /usr/lib/libGL.so.1: во всех дистрибутивах свободная Mesa, которую сразу все удаляют, заменяя на проприетарную версию. Программы затем имеют зависимость от libGL.so.1 и работают во всех дистрибутивах, даже где проприетарных видеодрайверов нет. А с Portable OpenCL программа запустится без nvidia cuda tooltit или amd stream sdk, имея необязательную использованную опцию OpenCL.

    А моё мнение: будет что привязывать к открытому драйверу radeon.

     
     
  • 2.3, Zenittur, 13:55, 20/10/2011 [^] [ответить] [смотреть все]
  • +/
    Необязательно используемую
     
  • 1.4, Nickolaev, 13:56, 20/10/2011 [ответить] [смотреть все]
  • +1 +/
    http://code.google.com/p/freeocl/
     
  • 1.5, Аноним, 14:02, 20/10/2011 [ответить] [смотреть все]
  • –1 +/
    Задача проекта - создать единую реализацию которая позволила бы разработчик... весь текст скрыт [показать]
     
     
  • 2.6, Аноним, 15:32, 20/10/2011 [^] [ответить] [смотреть все]  
  • +/
    Вообще-то речь как раз о том, чтобы не дублировать одни и те же оптимизации для ... весь текст скрыт [показать]
     
     
  • 3.10, Аноним, 11:15, 21/10/2011 [^] [ответить] [смотреть все]  
  • +/
    2.9
     
  • 1.8, eugenyn, 04:47, 21/10/2011 [ответить] [смотреть все]  
  • +/
    NVidia не так давно тоже заявляла нечто подобное, только для именно CUDA. - Чтобы с каждой новой реализацией ее видеокарт становились не нужны особые оптимизационные техники. Что видно, в принципе, даже уже давно, по версиям Compute Capability - в более новых версиях отпадает необходимость в части оптимизаций.
     
     
  • 2.9, Аноним, 10:22, 21/10/2011 [^] [ответить] [смотреть все]  
  • +/
    Я бы сказал иначе рост производительности техники сокращает разницу выполнения ... весь текст скрыт [показать]
     
     
  • 3.11, eugenyn, 11:29, 21/10/2011 [^] [ответить] [смотреть все]  
  • +/
    В случае с CUDA не учет расположения банков памяти на GPU влечет замедление работы в разы. Практически такая же картина при любых техниках/технологиях работы с многопоточностью - не учет факторов, влияющих на оптимизацию выполнения - замедляет работу программы иногда и в десятки раз (а в случае блокировок программа вообще никогда нормально не завершится). :)

    Неудача Висты была вызвана как раз неправильными какими-то вещами в работе многопоточного кода, я подробности не помню, но когда вышла 7-ая виндовс - была информация от разработчиков, с переводом в Рунете, что реально повлияло на неудачу Висты.

     
  • 1.12, Аноним, 19:57, 25/10/2011 [ответить] [смотреть все]  
  • +/
    Они там что, прикалываются Кому opencl на x86 сдался Програминг opencl напоми... весь текст скрыт [показать]
     
     
  • 2.13, anonymous, 17:16, 27/10/2011 [^] [ответить] [смотреть все]  
  • +/
    Для отладки. Одно дело теория, а другое дело просто поменать ключик компилятора или выбрать в выппадающем списке программы другой драйвер в ревлтайме и погладеть как оно на самом деле работает. А то написать "наша программа (или очередная железка)за $10000 в 30 раз быстрее CPU" может каждый, а тут клик клик - и сравниваем реально.
     

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList