halide

    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回答

    我有這樣的例子發生器填充的區域(0,0,100,100)與黑色: class MyGen : public Generator<MyGen> { public: Var x, y; Output<Func> output { "output", Int(32), 2 }; void generate() { output(x, y) = x

    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熱度

    1回答

    我試圖用金屬作爲我在iOS上使用的提前(AOT)鹵化物管線的目標。 我已經成功創建了一個使用Metal生成靜態二進制文件的Halide生成器。我可以在iOS應用中鏈接並調用這個二進制文件。 但是,當我將Buffer<uint8_t> input_傳遞給該函數時,Buffer中的數據總是在GPU側似乎爲零。請注意,這僅在iOS上的GPU上運行時發生。 發生器 #include "Halide.h"

    0熱度

    1回答

    我正在使用Halide實現一個算法,同時比較相同算法的手調(使用CUDA)版本。 Halide實現的加速大多進行得很順利,但仍然比手動調整版慢一點。所以我試着用nvvp(nvidia visual profiler)來查看每個Func的確切執行時間。通過這樣做,我發現手動調整的實現重疊了多個函數(它們是相似的),它在Halide實現中作爲Func實現。 Cuda的Stream技術被用來做到這一點。

    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