CGMAの計算で迷っています。CGMA = 操作数 / メモリ フェッチ数であることはわかっています。まず、いつx = g_A[idx]
、書き込み操作をカウントするx
か、レジスタに格納されているため無視する必要がありますか? 同様に、のとの読み取りを CGMA の計算でメモリ読み取りとしてz = (x*y) + (y/x) + (y-x);
カウントする必要がありますか? 最後に、カーネル関数のすべての操作 (これらの 5 行) をカウントする必要がありますか?x
y
__global__ void PerformSomeOperations(int* g_A,int* g_B,int* g_C, int Size)
{
const int idx = threadIdx.x + (blockIdx.x*blockDim.x);
if(idx < Size)
{
int x = g_A[idx];
int y = g_B[idx];
int z = 0;
z = (x*y) + (y/x) + (y-x);
g_C[idx] = z;
}
}