Исследователи из Массачусетского технологического института представили новый язык программирования Halide (http://halide-lang.org/), специально разработанный для упрощения разработки приложений, обрабатывающих графические изображения. Halide является предметно ориентированным языком, предназначенным для достижения максимальной эффективности при обработке основных типов графических файлов, например в таких типовых графических операциях, как обработка raw-изображений, фильтрация Лапласа, сегментация изображения и т.п.
Технически - это язык прототипов на базе C++, который допускает своё использование в двух режимах: выполнение встроенных в приложение функций на языке Halide через использование JIT-компиляции; либо компиляция в отдельный объектный файл, который может впоследствии быть подключен в стороннюю программу, например посредством добавления простейшего заголовка-ссылки на этот файл при компиляции.Исследователи говорят (http://web.mit.edu/newsoffice/2012/better-programming-langua... что легкость чтения и восприятия более высокоуровневого языка Halide не единственное его отличие от обычных языков программирования. Что более важно, Halide также автоматизирует оптимизацию машинного кода под ресурсоёмкие графические операции, на что в противном случае потребовались бы часы весьма непростой работы, и даже в случае полной ручной оптимизации вряд ли результат был бы лучше по сравнению с Halide. Разработчики языка переписали на Halide некоторые общедоступные графические библиотеки и обнаружили, что версия на языке Halide, как правило, в три раза меньше по размеру и в 6 раз быстрее по производительности. Сами исследователи объясняют такой скачек производительности активным использованием самых современных технических возможностей, главным образом использованием эффективного распараллеливания процессов.
Проект написан на языке C++ с использованием элементов нового стандарта C++11 (http://ru.wikipedia.org/wiki/C%2B%2B11), поэтому для его компиляции требуется как минимум gcc 4.6. На данный момент Halide адаптирован для следующих платформ: x86-64/SSE, ARM v7/NEON и CUDA. Язык поддерживает блоки SIMD, многоядерные процессоры, сложно-иерархическую память. Поддерживается сборка для Mac OS X и Linux (Ubuntu 12.04). Исходные тексты проекта открыты (https://github.com/halide/Halide) под лицензией MIT (http://en.wikipedia.org/wiki/MIT_License).
URL: http://www.h-online.com/open/news/item/Halide-a-new-programm...
Новость: http://www.opennet.me/opennews/art.shtml?num=34533
Круто, давно пора в числодроблении заменять низкоуровневые простыни на C на что-то более человеческое.
На С++. Всё остальное - ересь и джаваскрипт.
Ересь это ваш С++, только машкоды, только хардкор, а плюсы для неосиляторов
Запилите мне сервернуб СУБД с SQL ANSI 92 на мнемониках - зауважаю.
Джонни Мнемоник подойдет? Память проапгрейжена, новье практически.
А ГУИ на асме канает? Легко пишется...
А С++ таки да, дерьмо
>> Поддерживается сборка для Mac OS X и Linuxна вин что ли не пойдет!?
как неожиданно и радостно =)
"Windows support is technically feasible, but we have not yet built or tested on Windows."
А Hamachi где?
В соседнем кабинете у другого доктора.
Вообще-то он на Ocaml написан, а не на C++. К C++ там только биндинги.
Жду когда код будет кроссплатформенен и когда появится поддержка OpenCL.
не надо или вантузятнек
> не надо или вантузятнекэто ты не нужен, маленький жадный ребенок. хочешь дам конфетку пососать?
> маленький жадный ребенокчто такое, ты купил какой-то из корпоративных шитов, и теперь у тебя поппеншмэрц? бывает.
Арису, ты кто такой? Давай уже, а...
Она же тебе уже 2 раза давала, а ты не смог, изыди
>> не надо или вантузятнек
> это ты не нужен, маленький жадный ребенок. хочешь дам конфетку пососать?А в пупок целовать не будешь?
> скачек производительностиипподром какой-то.
>> 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 раз быстрее)Откуда это перевелось? Какие они библиотеки переписали? Пусть они на конференциях всем втирают, что они в шесть раз быстрее. И столбиковыми диаграммами всех кормят. Пока нет конкретных патчей в апстрим для конкретных библиотек -- у них язык в шесть раз длиннее, а скорость библиотек всё та же.
да никакие не переписали. переводчик как Мойша в анекдоте: «слышал я этого вашего XXX, мне Мойша вчера напел, ужасно: фальшивит, картавит, в ритм не попадает…»
Ну и правильно, каждой крупной задаче по своему языку - минус тонны велосипедов реализаций всего и вся на универсальных языках, что опять же приведёт к увеличению скорости написания и (в отличии от явы) заметно не скажется на производительности.
потрясающая вещь, давно такое искал
Протестим, проверим... Скорее всего это правда. Ведь это же MIT!
OpenCL бекэнда нет! Сегодня вкладывать своё время в что-то только для CPU, кто может себе ещё позволить такую роскошь? Ведь даже Mali GPU в Cortex-A15 уже сертифицирована под OpenCL.
Чего хочет MIT своей "новинкой" добиться - не пойму.
Ладно, CUDA не воспринял (т.к. аналогично проприетарному Intel Compiler, который игнорирует спец. расширения, если использовать процы конкурента).
Там LLVM как бэкэнд, а у него OpenCL есть
А какже AMD Stream? По причине малой распространенности?
AMD убила в пользу OpenCL
Интересно, а можно эту штуку к Гимпу прикрутить?
Можно. Но нахуа?
чтобы было проще писать фильтры