| Crates.io | mem_prefetch |
| lib.rs | mem_prefetch |
| version | 0.1.1 |
| created_at | 2025-08-28 21:01:19.219925+00 |
| updated_at | 2025-08-29 09:55:23.929008+00 |
| description | mem_prefetch provides a simple platform agnostic wrapper for memory prefetching. |
| homepage | https://github.com/vdrn/mem_prefetch |
| repository | https://github.com/vdrn/mem_prefetch |
| max_upload_size | |
| id | 1814624 |
| size | 7,694 |
This crate provides a simple platform agnostic wrapper for memory prefetching.
[dependencies]
mem_prefetch = "0.1"
mem_prefetch::prefetch_read_data::<_, 3>(reference); // most local
mem_prefetch::prefetch_write_data::<_, 3>(reference); // most local
mem_prefetch::prefetch_read_data::<_, 2>(reference);
mem_prefetch::prefetch_write_data::<_, 2>(reference);
mem_prefetch::prefetch_read_data::<_, 1>(reference);
mem_prefetch::prefetch_write_data::<_, 1>(reference);
mem_prefetch::prefetch_read_data::<_, 0>(reference); // least local
mem_prefetch::prefetch_write_data::<_, 0>(reference); // least local
// Or raw ptr variants:
unsafe {
mem_prefetch::prefetch_read_data_raw::<_, 0>(ptr);
mem_prefetch::prefetch_write_data_raw::<_, 0>(ptr);
}
fallback: Use fallback ptr::read_volatile for prefetching if no prefetch instruction is available. (Enabled by default).nightly: Use llvm intrinsics from core_intrinsics for prefetching.x86.