Trong ứng dụng của tôi, tại một thời điểm tôi cần thực hiện các phép tính trên khối dữ liệu bộ nhớ liền kề lớn (100s MB). Những gì tôi đã suy nghĩ là để tiếp tục tìm nạp trước một phần của khối chương trình của tôi sẽ liên lạc trong tương lai, để khi tôi thực hiện các phép tính trên phần đó, dữ liệu đã có trong bộ nhớ cache.Tìm nạp dữ liệu vào bộ nhớ đệm cho x86-64
Ai đó có thể cho tôi một ví dụ đơn giản về cách đạt được điều này với gcc? Tôi đọc _mm_prefetch
ở đâu đó, nhưng không biết cách sử dụng nó đúng cách. Cũng lưu ý rằng tôi có một hệ thống đa lõi, nhưng mỗi lõi sẽ làm việc trên một vùng khác nhau của bộ nhớ song song.
Nếu truy cập bộ nhớ là tuần tự, trình tìm nạp trước phần cứng sẽ làm điều đó cho bạn. Vì vậy, bạn có thể sẽ không nhận được nhiều cải tiến với tìm nạp trước thủ công. – Mysticial
Xem câu hỏi này để biết ví dụ về nơi tìm nạp trước thực sự giúp: http://stackoverflow.com/questions/7327994/prefetching-examples – Mysticial
Bạn có nghĩa là trình tìm nạp trước phần cứng bằng cách nào đó nhận ra tôi đang sử dụng các khu vực tiếp giáp trong bộ nhớ và đưa các phần đó vào bộ nhớ cache ? – pythonic