私はOpenCLの世界に慣れていないので、OpenCLについての知識を増やしたいと思います。
OpenCLを使用して「複雑な関数」を構築する方法についての情報を見つけようとしました。「複雑な関数」とは、並列化できる関数であり、内部にも並列化できる関数があることを意味します。私は次のようなリンクを見てきました:
そして今、私は私の質問に行きます、私は例を使うつもりです:
// A and B are int vectors
// The value of M and N are different!! M != N
for(int i=0; i<=M-2;i++){
for(int j=i+1;j<=M-1;j++){
distance=calculate_distance(A[i],B[j]);
//more sequential instructions
}
}
そして、calculate_distanceは両方のベクトルを連結し、ループを持っています。
for(int i=0; i<=N-1;i++)
// Some sequential instructions
このコードの完全な断片を並列化できますか?その場合、どのように(これがカーネル内のタイトルカーネルの理由です)?
注:カーネルをチェックするために、OpenCL用のインテル(R)SDK-オフラインコンパイラ2012(Windows)を使用しています。
前もって感謝します