ベクトルがあり、CUDA と Thrust 変換を使用して次のことを実行したいと考えています。
// thrust::device_vector v;
// for k times:
// calculate constants a and b as functions of k;
// for (i=0; i < v.size(); i++)
// v[i] = a*v[i] + b*v[i+1];
これを正しく実装するにはどうすればよいですか? 私ができる 1 つの方法は、ベクトル w を持ち、thrust::transform を v に適用し、結果を w に保存することです。しかし、k は前もって不明であり、w1、w2、... を作成して多くの GPU メモリ スペースを浪費したくありません。できれば、データのコピー量を最小限に抑えたいと考えています。しかし、値が互いに踏み込まずに1つのベクトルを使用してこれを実装する方法がわかりません。これを行うことができるスラストが提供するものはありますか?