2017-06-02 20 views
1

をストラクトされていない私はアリアGPUライブラリからGpu.Default.Forを使用しようとしていますが、私は例外を取得しておいてください。例外がスローさ:Alea.dll「I32の「のSystem.Exception」をタイプ

これを何
i32 is not a struct type error. 

エラーを意味し、なぜ私はこの単純なGpu.Default.Forループでそれを取得しています

for (Int32 j = 0; j <= TimePeriodArray.Length - 1; j++) 
//Gpu.Default.For(0, TimePeriodArray.Length - 1, j => 
{ 
    Int32 days = TimePeriodArray[j]; 
    Double[] CalcResult = new Double[CloseArray.Length]; 

    for (Int32 Index = days; Index <= CloseArray.Length - 1; Index++) 
    { 
     Gpu.Default.For(Index - 1, Index - days, i => 
     { 
      CalcResult[Index] = CalcResult[Index] + CloseArray[i]; 
     }); 

     CalcResult[Index] = CalcResult[Index]/days; 
    } 

    CalcResultsList.Add(CalcResult); 
//}); 
} 
+0

あなたが尋ねている方法は[this](http://www.aleagpu.com/release/3_0_3/doc/gpu_programming_csharp.html#parallel_for)ですか? –

+0

コードがGpu.Default.Forループ Gpu.Default.For(インデックス実行しようとしたら、はい、エラーが発生した - 1、インデックス - 日、I => { CalcResult [インデックス] = CalcResult [インデックス] + CloseArray [i]; }); – user2808755

+0

あなたの質問はトピックになるように編集してください:問題を複製する[mcve]を含めてください。 (1)望ましい動作、(2)特定の問題またはエラー、(3)それを再現するために必要な最短のコードを含める必要があります。質問自体に*。また、[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask]を参照してください。問題を再現するのに十分なコードに加えて、部分的には、コードを実行するときに生成される* exact *エラーテキストを(コード形式のテキストとして)提供することを意味します。 – Makyen

答えて

3

2つのことは:?。まず、あなたがサポートされていないGPUコード内の配列を、新しい第二に、私は、CalcResultsListはタイプListのだと思いますこれもサポートされていません。新しいメモリをGPUコード内に割り当てるのは効率的ではありません。 GPUコードは多くのスレッドで実行されますが、GPUコード内の割り当ては推奨されません。

関連する問題