問題タブ [halide]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 両方の引数を評価せずに「select」をハライドする
Halide select(x,y,z); を試したかどうかがわかります。これは、C++ の三項演算子に似たものです。ここで、x は条件付きの y が true の場合、z は false の場合です。
y が 0 を返すだけで、z が非常にコストのかかる関数であると想像してください。x が false の場合、z の評価をスキップするのは理にかなっています。残念ながら、select(x,likely(y),z); を設定しても、Halide は両方の項を評価します。または、少なくとも compile_to_file (.h + .lib) を使用すると発生します
これについて何か考えはありますか?
ありがとうございました!
c++ - C++ 配列から Halide Image へ (およびその逆)
私は Halide を使い始めたところです。その設計の基本的な原則は理解できましたが、計算を効率的にスケジュールするために必要な詳細(読み方: 魔法)に苦労しています。
Halide を使用して配列をある場所から別の場所にコピーする MWE を以下に投稿しました。私は、これがほんの一握りの命令にコンパイルされ、実行に 1 マイクロ秒もかからないと想定していました。代わりに、4000 行のアセンブリを生成し、実行に 40 ミリ秒かかります! したがって、明らかに、私の理解には重大な穴があります。
- で既存の配列をラップする標準的な方法は何
Halide::Image
ですか? - コピーを効率的に実行するには、関数をどのよう
copy
にスケジュールする必要がありますか?
最小限の作業例
コンパイル フラグ
c++ - Halide::Func 定義でのクラッシュ
cv::Mat から Halide::Image への画像データの取得に少し問題があります。私は Visual Studio 2015 Community を使用して Windows 7 で作業しており、ダウンロード可能な Halide for Windows 32bit のバイナリを使用しています。例:
次のエラーメッセージが表示されました
また、プレーンなデータの malloc を使用して Halid::Buffer に渡して試してみましたが、同じエラーが発生しました。オブジェクトを2回削除しようとするとこのエラーが発生する可能性があるため、メモリの所有権に問題があると思いますが、これについてはわかりません。それはHalideのバグですか、それとも私はs.thをやっています。違う?
編集: コールスタック
c++ - Halide での再帰的 Func 呼び出し
私は Halide を使用しており、特定の 2 次元入力に対して最大接続セルのサイズを計算しようとしています。アイデアは再帰関数を使用することですが、Halide 言語での記述方法がわかりません。
参考となる python スクリプトと期待される結果は以下の通りです。
Halide の実装はここにありますが、以下のエラー メッセージが表示されます。
エラーメッセージ:
エラーメッセージによると、右辺に 'x-1' と 'x+1' を使用できません。しかし、私はそうしたいです。このような再帰的な Func 呼び出しを実現する方法はありますか?
※Halideで期待通りの結果が得られれば、再帰呼び出しにはこだわりません。
halide - Halide での int と float の混合
私はVS2013でHalideを使用しています。最初のチュートリアルを正常にビルドして実行しました。
コードの一部を実装しようとしていますが、コンパイルできない理由がわかりません。コードは次のとおりです。
エラーは m45(x, y) = ... 行で発生します。どうやら、input_lum は float 値とは見なされません。エラー メッセージは、「Halide::Expr から float への適切な変換が存在しない」というものです。
どうやらすべてのキャストとフロート計算が無視されているようです。
(私はまだ入力を初期化していないことを知っています.Halideコードを書くときの考え方を理解しようとしています,そして型推論は私に適合を与えています.)
ここで何が間違っていますか?
(はっきりしない場合は、RGB 画像の輝度を取得し、輝度を計算したいだけです。それが機能する場合は、整数空間にとどまることができれば幸いです。)
OK、私はこれを実験して試しました:
これでコンパイルは完了しましたが、何をしているのかわかりません。input_lum() の型が float にならないのはなぜですか?
halide - 「単純な」Halide プログラムでコンパイル時にスタック オーバーフローが発生する
これがコードです。2015 年 8 月 5 日の VS2013、Win64 トランクで Halide を使用しています。diag.compile_to_lowered_stmt("diag.html", {}, HTML) を実行すると、halide.dll 内でスタック オーバーフローが発生します。
何か案は?また、改善されたスケジュールを提供したい場合は、喜んで受け入れます。最初に基本的なことを実行したかっただけです。
(diag.compute_root() の後にバインドされたペアを追加しましたが、それは役に立たないようです。最終的には diag 係数をクランプしたいと思います。)