가정하자 나는 다음과 같이 메모리 액세스를 스트라이드 수행 커널이 있습니다효과적인 메모리 대역폭
__global__ void strideExample (float *outputData, float *inputData, int stride=2)
{
int index = (blockIdx.x * blockDim.x + threadIdx.x) * stride;
outputData[index] = inputData[index];
}
내가 그 50 %로드/저장 효율됩니다 2의 보폭 크기 액세스 이해를 왜냐하면 트랜잭션과 관련된 요소의 절반이 사용되지 않기 때문에 (낭비되는 대역폭으로). 보다 큰 보폭에 대한로드/스토어 효율을 계산하려면 어떻게해야합니까? 미리 감사드립니다! 일반적으로
감사합니다. 위의 질문에서 스트라이드 크기가 6이라고 가정하면 부하 효율성을 어떻게 계산합니까? –
CUDA Compute Cabability 1.1 및 1.2와 동일합니까? –
예, 모든 컴퓨팅 기능에서 동일하게 작동합니다. 1.0 및 1.1에서는 트랜잭션 크기가 약간 다르지만 일반적인 개념은 동일합니다. –