私はHalide::Runtime::Buffer
を持っており、条件を満たす要素を削除したいと考えています。理想的には、操作がその場で行われ、関数が定義できるHalide::Generator
にあります。ハライド:ベクトルから逸脱したフィルタ要素(Halide :: Runtime :: Buffer)
私は縮小を検討しましたが、異なる長さのベクトルを出力できないようです。特定の要素を自分が選択した値にしか設定できません。
これまでのところ、私が動作させる唯一の方法は、extern "C"
コールを使用して、ブール型バッファ(1と0をintとして)と一緒にフィルタリングしたいバッファを渡すことでした。バッファーを別のライブラリー(Armadillo)のベクターに読み込み、目的のフィルターを実行してから、フィルタリングされたベクターをハライドに読み戻しました。
このコードでは、Halide::Buffer
オブジェクトを渡していますが、Halide::Runtime::Buffer
オブジェクトではないため、これを実装する方法がわかりませんHalide::Generator
。
だから私の質問は2つあり:
- は、フィルタリングのこの種は、好ましくはその場で、純粋なハロゲン化物で達成することができますか?
- ジェネレータで
extern "C"
関数を使用する例はありますか?
ありがとう!あなたがリンクしているprefix_sumコードを使って作業しています。私は、フィルタリング関数を一般化するため(そしてブール値ベクトルを簡単に合計していくつの出力が存在するかを知ることができるように)、メインベクトルと共にブール値ベクトルをとることが有用であることを発見しました。 – zanbri