Nach PTX manual hier ist, wie Prefetch in PTX funktioniert:
Sie können die PTX Anweisungen in die CUDA Kernel einzubetten. Hier ist eine kleine Probe aus NVIDIA's documentation:
__device__ int cube (int x)
{
int y;
asm("{\n\t" // use braces for local scope
" .reg .u32 t1;\n\t" // temp reg t1,
" mul.lo.u32 t1, %1, %1;\n\t" // t1 = x * x
" mul.lo.u32 %0, t1, %1;\n\t" // y = t1 * x
"}"
: "=r"(y) : "r" (x));
return y;
}
Sie kommen mit der folgenden Prefetch-Funktion in C schließen:
__device__ void prefetch_l1 (unsigned int addr)
{
asm(" prefetch.global.L1 [ %1 ];": "=r"(addr) : "r"(addr));
}
HINWEIS: Sie müssen die GPU von Compute Capability 2.0 oder höher für Prefetch. Pass richtig Kompilieren Flags entsprechend -arch=sm_20
können Sie mir auf einige weitere Dokumentation, wie Prefetching funktioniert, wie die Erklärung des Konzepts selbst. –
sicher! Überprüfen Sie diese GPGPU Prefetching-Studie und gehen Sie durch Referenzen, um mehr über das Konzept zu erfahren: http://www.cc.gatech.edu/~hyesoon/lee_taco12.pdf – ahmad