pascalabcnet/InstallerSamples/OpenGL и OpenCL/OpenCL/MatrMlt.cl

30 lines
562 B
Common Lisp
Raw Permalink Normal View History

2020-03-13 05:28:53 +03:00

2019-05-18 10:24:07 +03:00
__kernel void MatrMltMatr(__global double* A, __global double* B, __global double* C, __global int* gW)
{
int cX = get_global_id(0);
int cY = get_global_id(1);
int W = *gW;
double sum = 0.0;
for (int i=0; i<W; i++)
sum += A[i + cX*W] * B[cY + i*W];
2019-05-18 10:24:07 +03:00
C[cX + cY*W] = sum;
}
__kernel void MatrMltVec(__global double* C, __global double* V1, __global double* V2, __global int* gW)
2019-05-18 10:24:07 +03:00
{
int i = get_global_id(0);
int W = *gW;
double sum = 0.0;
for (int j=0; j<W; j++)
sum += C[j + i*W] * V1[j];
2019-05-18 10:24:07 +03:00
V2[i] = sum;
}