2つの配列で反復するにはどうすればよいですか?
__global__ void euclidean(float *x, float *y, int dim_x, int dim_y, int ms, float *solution) {
int idx = threadIdx.x + blockDim.x * blockIdx.x;
int idy = threadIdx.y + blockDim.y * blockIdx.y;
float result = 0.0;
for (int iter = 0; iter < ms; iter++) {
float x_e = x[idy * ms + iter];
float y_e = y[idx * ms + iter];
result += (x_e * y_e);
}
}
入力: X = [[1,2], [3,4], [5,6], [7,8], [9,10]]
およびY = [[0,0], [1,1]]
期待される出力: [[0, 3], [0, 7], [0, 11], [0, 15]. [0, 19]]
これどうやってするの?私の難しさは、XとYを繰り返すことです。
期待される:
[idx:0 idy:0 = 0] [idx:1 idy:0 = 3] [idx:2 idy:0 = 0] [idx:3 idy:0 = 7] [idx:4 idy:0 = 0] [idx:0 idy:1 = 11] [idx:1 idy:1 = 0] [idx:2 idy:1 = 15] [idx:3 idy:1 = 0] [idx:4 idy:1 = 19]