halide

    0熱度

    1回答

    是否可以從生成器類中的數組初始化Func?代碼應該看起來像這樣。 class SobelConv: public Halide::Generator<SobelConv> { const signed char kernelx[3][3] = { {-1, 0, 1}, {-2, 0, 2}, {-1, 0, 1} }; void generate() {

    0熱度

    1回答

    我正在使用Halide作爲C++代碼庫的某些部分。我有一個AoT編譯函數,它計算一個Tuple-valued Func,所以它被編譯爲buffer_t結構,作爲之前函數的輸入(現在編譯爲halide_buffer_t)。在我調用庫.cpp文件,如下我定義這些buffer_t值: result1.host = (uint8_t*)result_cpp_array; result1.elem

    0熱度

    1回答

    函數我試圖定義一個函數來使用鹵化物生成掩碼圖像。 有一個緩衝 Buffer<int> bounding_box; bounding_box(0, 0) = min_x0; bounding_box(0, 1) = max_x0; bounding_box(0, 2) = min_y0; bounding_box(0, 3) = max_y0; bounding_box(1, 0) = m

    1熱度

    1回答

    我想在SIGGRAPH'16發表的論文中重新檢查有關GPU自動調度的實驗。 我使用auto-scheduler分支編譯了下面的代碼,但生成的代碼是爲CPU預定的。 如何使用自動調度程序爲GPU生成時間表? #include "Halide.h" #include "HalideBuffer.h" #include <climits> #include <iostream> using n

    1熱度

    2回答

    我有其具備以下的輸出尺寸3個鹵化物功能: 40×40×64 40×40×128 40×40×64 我希望將它們組合成一個單一的函數,以便我得到一個函數句柄供以後使用。所以在這裏,所產生的功能應該有 40×40×256 維我使用Halide::select但它導致了4名維 concat(x,y,z,c)=Halide::select(c == 0, func_1(x, y, z), c == 1,

    0熱度

    1回答

    這種類型的代碼將是一個有效的單線程調度? 我想定義模糊,但在AOT中的可變內核大小。我嘗試了https://github.com/halide/Halide/issues/180解決方案,但我無法找到一個安排它的好方法,它可以讓我獲得與使內核大小爲GeneratorParam並預編譯不同值的性能相同的性能。 這裏是與GeneratorParam片段: // GeneratorParam<int32

    1熱度

    1回答

    我試圖通過mat.at(i,j)將緩衝區圖像轉換爲opencv mat,但它運行了20 ms。它太慢了。如何提高速度?或另一種方法將緩衝區圖像轉換爲cv :: Mat ? Halide::Func gray; Halide::Var x, y; gray(x, y) = Halide::cast<uint8_t>(0.299f * image(x, y, 0) +0.587

    0熱度

    1回答

    我得到了一個函數f(x,y,z),其值爲1和0,並且我需要獲得等於值的前100個座標到1,減少/更新到0. 這是非常簡單的實現在C和其他語言,但是,我一直在試圖解決它與鹵化物幾天。是否有任何函數或算法可用於在Halide Generator中解決它?

    0熱度

    1回答

    我一直試圖通過halide重新創建一個手動調整的c函數。這是在源圖像的垂直掃描線上完成的一系列直方圖。因此,我使用1維RDom來迭代源圖像。 RDom reductionY(0, input.height()); parade(x,y,c) = Halide::cast<uint16_t>(0); parade(x, input(x, reductionY, c), c) +

    0熱度

    2回答

    我試圖將resize app從halide存儲庫中從內聯聲明轉換爲生成器。一切似乎都做工精細,除了這一點: Func clamped = BoundaryConditions::repeat_edge(input);` 在原代碼,input聲明像這樣ImageParam input(Float(32), 3)。在我的發生器中,我將它翻譯爲:Input<Func> input { "input"