0
私はちょうどALEAで始まっています。私はあなたが与えられたgpu parallel.forの内部で他のタイプと参照にアクセスする方法が不思議です。可能性のある理由:1)静的フィールドはサポートされていません.2)フィールドタイプはサポートされていません。3)クロージャークラスでは、フィールドには[GpuParam]属性です。ループのためのAlea GPUはフィールドを得ることができません
このエラーは理にかなっているが、私は正しい実装は、あなたがSystem.Random.Nextを呼び出すしよう
[GpuManaged]
public void InitPoints()
{
var gp = Gpu.Default;
gp.For(1, (10), (i) =>
{
int pointStart = random.Next(totalPoints) + 1;
Pt point = new Pt(pointStart, ptAt[i]);
point.Process();
});
}
@Danielさんへのお返事ありがとうございます。私はこれが問題であると理解していましたが、私が混乱しているのは、サポートされていないgpuタイプを動作させるための正しい実装/インタフェースです。それは可能ですか? cuRandはGPUでコンパイルすることができますが、それは素晴らしいですが、GPUが私のカスタム "Pt"タイプを適切にコンパイルする方法があります。また、サポートされているタイプのGPUのリストがあり、どこでこれを見つけることができますか?私は本当に助けに感謝します – skevthedev
[Alea GPU](http://www.aleagpu.com)Webページには多くの[samples](http://www.aleagpu.com/gallery.html)があります。特に[このサンプル](http://www.aleagpu.com/release/3_0_4/doc/samples/aleasample_cs_financeasianoptionmontecarlo.html)を通して作業してください。必要以上に複雑ですが、GPUをプログラムする場合の考え方を十分に理解しておく必要があります。 – Daniel