Hướng dẫn SSE của x86-64 ở đâu (hướng dẫn vectơ) hoạt động tốt hơn các hướng dẫn thông thường. Bởi vì những gì tôi thấy là tải thường xuyên và các cửa hàng được yêu cầu để thực hiện các lệnh SSE là vô hiệu hóa bất kỳ lợi ích nào chúng ta có do tính toán vectơ. Vì vậy, ai đó có thể cho tôi một mã SSE ví dụ nơi nó thực hiện tốt hơn so với mã bình thường.Hướng dẫn SSE hoạt động tốt hơn các hướng dẫn thông thường ở đâu
của nó có lẽ bởi vì tôi đang đi qua từng tham số riêng biệt, như thế này ...
__m128i a = _mm_set_epi32(pa[0], pa[1], pa[2], pa[3]);
__m128i b = _mm_set_epi32(pb[0], pb[1], pb[2], pb[3]);
__m128i res = _mm_add_epi32(a, b);
for(i = 0; i < 4; i++)
po[i] = res.m128i_i32[i];
không Có cách nào tôi có thể vượt qua tất cả 4 nguyên tại một đi, tôi có nghĩa là vượt qua toàn bộ 128 byte trong số pa
tại một thời điểm? Và chỉ định res.m128i_i32
đến po
cùng một lúc?
Về cơ bản, bất cứ khi nào bạn có một tính toán/load-store cực cao tỉ lệ. – Mysticial
Vâng, bạn chắc chắn không muốn sử dụng '_mm_set_epi32()' như thế. Sử dụng '_mm_load_si128()'.Và nếu bạn không thể căn chỉnh dữ liệu, bạn có thể sử dụng '_mm_loadu_si128()' tại một hình phạt hiệu suất. – Mysticial
Căn chỉnh dữ liệu? Bạn có ý gì thông qua chuyện đó? – pythonic