The OpenNET Project / Index page

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

Представлен Halide, новый язык программирования для обработки изображений

09.08.2012 23:33

Исследователи из Массачусетского технологического института представили новый язык программирования Halide, специально разработанный для упрощения разработки приложений, обрабатывающих графические изображения. Halide является предметно ориентированным языком, предназначенным для достижения максимальной эффективности при обработке основных типов графических файлов, например в таких типовых графических операциях, как обработка raw-изображений, фильтрация Лапласа, сегментация изображения и т.п.

Технически - это язык прототипов на базе C++, который допускает своё использование в двух режимах: выполнение встроенных в приложение функций на языке Halide через использование JIT-компиляции; либо компиляция в отдельный объектный файл, который может впоследствии быть подключен в стороннюю программу, например посредством добавления простейшего заголовка-ссылки на этот файл при компиляции.

Исследователи говорят, что легкость чтения и восприятия более высокоуровневого языка Halide не единственное его отличие от обычных языков программирования. Что более важно, Halide также автоматизирует оптимизацию машинного кода под ресурсоёмкие графические операции, на что в противном случае потребовались бы часы весьма непростой работы, и даже в случае полной ручной оптимизации вряд ли результат был бы лучше по сравнению с Halide. Разработчики языка переписали на Halide некоторые общедоступные графические библиотеки и обнаружили, что версия на языке Halide, как правило, в три раза меньше по размеру и в 6 раз быстрее по производительности. Сами исследователи объясняют такой скачок производительности активным использованием самых современных технических возможностей, главным образом использованием эффективного распараллеливания процессов.

Проект написан на языке C++ с использованием элементов нового стандарта C++11, поэтому для его компиляции требуется как минимум gcc 4.6. На данный момент Halide адаптирован для следующих платформ: x86-64/SSE, ARM v7/NEON и CUDA. Язык поддерживает блоки SIMD, многоядерные процессоры, сложно-иерархическую память. Поддерживается сборка для Mac OS X и Linux (Ubuntu 12.04). Исходные тексты проекта открыты под лицензией MIT.

  1. Главная ссылка к новости (http://www.h-online.com/open/n...)
Автор новости: Igor Savchuk
Тип: Программы
Короткая ссылка: https://opennet.ru/34533-halide
Ключевые слова: halide, graph, image, lang
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аноним (-), 00:06, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Круто, давно пора в числодроблении заменять низкоуровневые простыни на C на что-то более человеческое.
     
     
  • 2.8, Аноним (-), 00:25, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • –5 +/
    На С++. Всё остальное - ересь и джаваскрипт.
     
     
  • 3.10, Аноним (-), 00:51, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ересь это ваш С++, только машкоды, только хардкор, а плюсы для неосиляторов
     
     
  • 4.19, ss (??), 09:09, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Запилите мне сервернуб СУБД с SQL ANSI 92 на мнемониках - зауважаю.
     
     
  • 5.24, kurokaze (ok), 11:16, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Джонни Мнемоник подойдет? Память проапгрейжена, новье практически.
     
  • 5.40, Аноним (-), 18:40, 13/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А ГУИ на асме канает? Легко пишется...
    А С++ таки да, дерьмо
     

  • 1.5, RazrFalcon (?), 00:22, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >> Поддерживается сборка для Mac OS X и Linux

    на вин что ли не пойдет!?
    как неожиданно и радостно =)

     
     
  • 2.6, Аноним (-), 00:24, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    "Windows support is technically feasible, but we have not yet built or tested on Windows."
     

  • 1.7, Аноним (-), 00:25, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А Hamachi где?
     
     
  • 2.22, Аноним (-), 10:57, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В соседнем кабинете у другого доктора.
     

  • 1.11, Amsterdm Navigator (?), 00:54, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вообще-то он на Ocaml написан, а не на C++. К C++ там только биндинги.
     
  • 1.12, ZeroOne (ok), 01:02, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Жду когда код будет кроссплатформенен и когда появится поддержка OpenCL.
     
     
  • 2.14, Аноним (-), 01:11, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    не надо или вантузятнек
     
     
  • 3.28, Аноним (-), 14:06, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > не надо или вантузятнек

    это ты не нужен, маленький жадный ребенок. хочешь дам конфетку пососать?


     
     
  • 4.34, arisu (ok), 16:14, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > маленький жадный ребенок

    что такое, ты купил какой-то из корпоративных шитов, и теперь у тебя поппеншмэрц? бывает.

     
     
  • 5.37, Анонимий (?), 18:21, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Арису, ты кто такой? Давай уже, а...
     
     
  • 6.39, Аноним (-), 21:04, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Она же тебе уже 2 раза давала, а ты не смог, изыди
     
  • 4.41, Аноним (-), 18:41, 13/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> не надо или вантузятнек
    > это ты не нужен, маленький жадный ребенок. хочешь дам конфетку пососать?

    А в пупок целовать не будешь?

     

  • 1.13, arisu (ok), 01:06, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > скачек производительности

    ипподром какой-то.

     
  • 1.15, Lockal (??), 01:19, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >> researchers used Halide to rewrite several common image-processing algorithms whose performance had already been optimized by seasoned programmers... (even six-fold speedups)
    >> Разработчики языка переписали на Halide некоторые общедоступные графические библиотеки и обнаружили... (в 6 раз быстрее)

    Откуда это перевелось? Какие они библиотеки переписали? Пусть они на конференциях всем втирают, что они в шесть раз быстрее. И столбиковыми диаграммами всех кормят. Пока нет конкретных патчей в апстрим для конкретных библиотек -- у них язык в шесть раз длиннее, а скорость библиотек всё та же.

     
     
  • 2.16, arisu (ok), 01:25, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    да никакие не переписали. переводчик как Мойша в анекдоте: «слышал я этого вашего XXX, мне Мойша вчера напел, ужасно: фальшивит, картавит, в ритм не попадает…»
     

  • 1.18, Аноним (-), 02:27, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну и правильно, каждой крупной задаче по своему языку - минус тонны велосипедов реализаций всего и вся на универсальных языках, что опять же приведёт к увеличению скорости написания и (в отличии от явы) заметно не скажется на производительности.
     
  • 1.20, Аноним (-), 09:32, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    потрясающая вещь, давно такое искал
     
  • 1.21, Игорь (??), 10:54, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Протестим, проверим... Скорее всего это правда. Ведь это же MIT!
     
  • 1.25, Андрей (??), 11:25, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    OpenCL бекэнда нет! Сегодня вкладывать своё время в что-то только для CPU, кто может себе ещё позволить такую роскошь? Ведь даже Mali GPU в Cortex-A15 уже сертифицирована под OpenCL.
    Чего хочет MIT своей "новинкой" добиться - не пойму.
     
     
  • 2.26, Андрей (??), 11:29, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ладно, CUDA не воспринял (т.к. аналогично проприетарному Intel Compiler, который игнорирует спец. расширения, если использовать процы конкурента).
     
  • 2.31, Anonymus (?), 14:49, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Там LLVM как бэкэнд, а у него OpenCL есть
     

  • 1.27, Аноним (-), 12:55, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А какже AMD Stream? По причине малой распространенности?
     
     
  • 2.33, Anonymus (?), 16:06, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    AMD убила в пользу OpenCL
     

  • 1.32, Anonomius (?), 15:23, 10/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересно, а можно эту штуку к Гимпу прикрутить?
     
     
  • 2.36, Аноним (-), 16:48, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно. Но нахуа?
     
     
  • 3.38, Аноним (-), 18:39, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    чтобы было проще писать фильтры
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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