Jump to content

Галид (язык программирования)

Галид
Парадигмы функциональный , параллельный
Разработано Джонатан Рэган-Келли
Эндрю Адамс
Разработчик MIT (при помощи Стэнфорда , Google , Adobe )
Впервые появился 2012 год ; 12 лет назад ( 2012 )
Дисциплина набора текста статический
Язык реализации С++
ТЫ macOS , основные Linux дистрибутивы , Windows
Веб-сайт галоидный длинный .org

Halide — это язык компьютерного программирования, предназначенный для написания кода обработки цифровых изображений , который использует преимущества локальности памяти , векторизованных вычислений и многоядерных центральных процессоров (ЦП) и графических процессоров (ГП). [1] Halide реализован как внутренний предметно-ориентированный язык (DSL) в C++ .

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

Пример исходного кода

[ редактировать ]

Следующая функция определяет и устанавливает расписание для коробчатого фильтра 3×3 , определяемого как серия из двух проходов 3×1:

Func blur_3x3(Func input) {
  Func blur_x, blur_y;
  Var x, y, xi, yi;

  // The algorithm - no storage or order
  blur_x(x, y) = (input(x-1, y) + input(x, y) + input(x+1, y))/3;
  blur_y(x, y) = (blur_x(x, y-1) + blur_x(x, y) + blur_x(x, y+1))/3;

  // The schedule - defines order, locality; implies storage
  blur_y.tile(x, y, xi, yi, 256, 32)
        .vectorize(xi, 8).parallel(y);
  blur_x.compute_at(blur_y, x).vectorize(x, 8);

  return blur_y;
}

Использовать

[ редактировать ]

Google использовал Halide и TensorFlow для своего Pixel 2 Pixel Visual Core . [2] Adobe Photoshop также использует Halide. [3] И Google, и Adobe принимали участие в исследовании Halide. [4]

См. также

[ редактировать ]
  1. ^ «Halide: новый язык обработки изображений» . 2012 . Проверено 20 сентября 2013 г.
  2. ^ «Google и Intel готовят ИИ-чипы, обменники нейронными сетями и многое другое» . Регистр . Ситуация Издательство.
  3. ^ «Фотошоп зависает при запуске из-за узких мест Halide» . 2020 . Проверено 27 апреля 2020 г.
  4. ^ «Учимся оптимизировать галоид с помощью поиска по дереву и случайных программ» (PDF) . 2019 . Проверено 1 июля 2019 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fb3cfb8929c6ad3ce63d0a1fd10b0d91__1710073680
URL1:https://arc.ask3.ru/arc/aa/fb/91/fb3cfb8929c6ad3ce63d0a1fd10b0d91.html
Заголовок, (Title) документа по адресу, URL1:
Halide (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)