Описание тега halide

Halide - это предметно-ориентированный язык для обработки изображений и компьютерной фотографии.
1 ответ

Эффективный доступ к памяти в Halide

Допустим, я хочу сделать операцию (например, сложение) между двумя изображениями, где каждый пиксель в изображении Img1 имеет соответствующий пиксель в изображении Img2. Вектор соответствия хранится в кортеже Delta. В основном, как-то так: Img (x, y…
18 мар '17 в 00:43
0 ответов

Сжатие данных с Halide

У меня есть следующий алгоритм сжатия данных (который упрощен для этого вопроса). Он включает в себя битовую операцию, а положение выходного элемента (и общий размер вывода) зависит от предыдущих входных данных. void compress_algrorithm(const uint8_…
26 янв '19 в 11:22
1 ответ

Заменить функции Opencv Fillpoly на галидные функции

Я пытаюсь реализовать некоторые функции opencv с помощью Halide, одна из трудностей, с которыми я столкнулся, состоит в том, как написать cv::fillpoly в Halide. Эта функция в opencv заполняет многоугольник в соответствии с заданной вершиной этого мн…
16 ноя '17 в 02:10
2 ответа

Галоидная редукция по двумерной границе домена

В фильтре, который я реализую, есть шаг, делающий некоторое уменьшение границы квадратной области RDom r(0, filter_size, 0, filter_size); r.where( (r.x == 0 || r.x == filter_size - 1) || (r.y == 0 || r.y == filter_size - 1)); Однако это делает обход…
21 мар '18 в 17:12
0 ответов

Отладка с помощью Halide::Print

Скажем, у меня есть выражение в коде Halide::Expr a = Halide::print(a) На этапе разработки скажите, что у меня есть это утверждение, и я в порядке с подробными результатами. Могу ли я отключить печать с флагом во время выполнения (оставив код без из…
21 фев '19 в 15:03
1 ответ

Разбить 'select' без оценки обоих аргументов

Как вы можете знать, пытались ли вы использовать Halide select(x,y,z); является чем-то похожим на троичный оператор в C++, где x является условным y, если оно истинно, и z, если оно ложно. Представьте, что y просто возвращает 0, а z - действительно …
18 июн '15 в 09:19
2 ответа

Получить подмодули Tiramisu llvm для Halide не удалось с.//3rdParty/llvm: нет такого файла или ошибка каталога

Привет, я пытаюсь установить компилятор тирамису. и однажды пытаясь установить его подмодули ( (ISL, LLVM и Halide) с помощью этой команды dina@dina-VBox:~/tiramisu$ ./utils/scripts/install_submodules.sh ./ и я получаю в конце концов эту ошибку Done…
06 окт '18 в 07:46
1 ответ

Когда будет поддерживаться compile_to_c с векторными типами?

Когда будет compile_to_c с векторными типами поддерживаться? Я добавил вызов Pipeline::compile_to_c() at conv_layer.cpp: 93 строка для получения кода C, сгенерированного halide. std::vector<Argument> empty_arg; // p is defined like "Pipeline p…
12 фев '17 в 08:23
0 ответов

Галид: график многоступенчатого трубопровода без встраивания

Я пытаюсь написать модульный многоступенчатый конвейер обработки, но у меня возникают проблемы с планированием. Структура кода выглядит следующим образом: #include <halide/Halide.h> Halide::Var x, y, c; Halide::Func producer(Halide::Func in) {…
23 мар '16 в 00:21
1 ответ

Halide HelloAndroid метод импорта не найден

Я попытался импортировать проект HelloAndroid в Android Studio, но, когда я пытаюсь собрать apk и запустить его на устройстве, я получаю ошибку gradle: Кто-нибудь знает, как решить эту проблему и запустить приложение?
30 авг '16 в 10:09
1 ответ

Сложности реализации шага гистерезиса алгоритма Канни в Halide без функции define_extern

Проблема заключается в том, что когда пиксель, помеченный как слабый край (между двумя пороговыми значениями), меняется на сильный край (принятый, как описано здесь), необходимо рекурсивно применять ту же логику к подключенным соседям (отслеживая кр…
14 фев '17 в 12:12
2 ответа

Работа с кортежами в Halide

Я хочу извлечь один канал в Halide, Halide::Image<uint8_t> input = load_image("images/rgb.png"); Halide::Var x, y; Halide::Func green; green(x,y)= {0, input(x, y, 1), 0}; Halide::Image<uint8_t> output = green.realize(input.width(), input…
24 дек '15 в 20:55
1 ответ

Ошибки с обновлением функции галида во всех пикселях

Я пытаюсь реализовать алгоритм оптического потока в Halide. У меня есть некоторые проблемы с обновлением векторов u и v. Вот моя версия C++: for(int i= 0; i<h; i++) { for(int j= 0; j<bpl; j++) { float iix = Ix[i*bpl+j]; float iiy = Iy[i*bpl+j]…
03 апр '17 в 13:27
1 ответ

Halide: Как обработать изображение в (перекрывающихся) блоках?

Я открываю Halide и добился определенного успеха с конвейером, выполняющим различные преобразования. Большинство из них основаны на примерах в источниках (цветовые преобразования, различные фильтры, Hist-EQ). Мой следующий шаг должен обработать изоб…
17 апр '17 в 16:40
2 ответа

Рекомендуемый способ распространения сгенерированных функций Halide?

В настоящее время я экспериментирую с Halide, первые тесты показывают довольно многообещающие улучшения производительности. Теперь мне интересно, какова лучшая стратегия распространения кода Halide. Требование пользователей к установке Halide на дан…
2 ответа

Как вы компилируете Halide для iOS?

README утверждает, что может компилироваться в armv7, но я не могу найти магическое заклинание, чтобы заставить его работать. Я начал с кроличьей норы, меняя Makefile, чтобы установить arch=armv7, исправляя получающиеся ошибки компиляции и т. Д., Но…
02 дек '14 в 01:30
1 ответ

Halide AOT для OpenCL прекрасно работает как статическая библиотека, но не как разделяемый объект

Я пытаюсь скомпилировать приведенный ниже код как в статическую библиотеку, так и в объектный файл: Halide::Func f("f"); Halide::Var x("x"); f(x) = x; f.gpu_tile(x, 4); f.bound(x, 0, 16); Halide::Target target = Halide::get_target_from_environment()…
0 ответов

Является ли строка галоидной индексации главной, основной колонкой или смесью?

Я хотел бы проверить мое понимание того, как работает индексирование в Halide. Во многих уроках я вижу галогенидные буферы, индексированные как [x,y,c], а именно [колонка, строка, канал]. Функция, которая запускает JIT, согласуется с этим: realize(i…
31 окт '18 в 19:15
2 ответа

Галид с макетами C NumPy массивов

Я начинаю использовать Halide и использовать его из среды Python. В этой среде Python данные передаются в виде массивов Numpy, которые фактически являются псевдонимами для массива C++, определенного в другом месте. Однако, когда я использую функцию …
23 дек '15 в 16:11
1 ответ

Как назвать несколько выходов функции (кортеж)?

Скажем, у меня есть генератор для генерации скомпилированной функции Ahead of Time, что-то вроде следующего. Halide::Func build(){ Halide::Func func1("func1"), func2("func2"), func3("func3"); Halide::Func result("result"); func1(x,y) = input(x,y) * …
31 янв '17 в 10:48