2012-11-07 32 views
5

Tôi đang làm việc trên tìm nạp dữ liệu trong CUDA (GPU Fermi) thông qua mã C. Tham khảo hướng dẫn sử dụng Cuda về việc tìm nạp trước ở mã cấp ptx không phải ở mã mức C.Tìm nạp trước cuda (thông qua mã C)

Bất kỳ ai cũng có thể kết nối tôi với một số tài liệu hoặc liên quan đến việc tìm nạp trước thông qua mã cuda (tệp cu). Bất kỳ trợ giúp sẽ được đánh giá cao.

Trả lời

5

Theo PTX manual đây là cách làm việc trong prefetch PTX:

enter image description here

Bạn có thể nhúng các hướng dẫn PTX vào hạt nhân CUDA. Đây là một mẫu nhỏ từ 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; 
} 

Bạn có thể đi đến kết luận với chức năng prefetch sau trong C:

__device__ void prefetch_l1 (unsigned int addr) 
{ 

    asm(" prefetch.global.L1 [ %1 ];": "=r"(addr) : "r"(addr)); 
} 

LƯU Ý: Bạn cần GPU của Tính năng 2.0 hoặc cao hơn cho prefetch. Chuyển cờ biên dịch phù hợp cho phù hợp -arch=sm_20

+0

bạn có thể cung cấp cho tôi thêm một số tài liệu về cách hoạt động của tính năng tìm nạp trước, như giải thích về chính khái niệm đó. –

+2

chắc chắn! kiểm tra nghiên cứu tìm nạp trước GPGPU này và xem qua các tài liệu tham khảo để tìm hiểu thêm về khái niệm: http://www.cc.gatech.edu/~hyesoon/lee_taco12.pdf – ahmad

Các vấn đề liên quan