Developer Guide

  • 2021.1
  • 11/03/2021
  • Public
Contents

Cache Allocation Library

The
cache allocation library
is a set of C language APIs that help reduce memory access latency by allocating buffers that cannot be evicted from cache. The library allocates buffers in Level 2 (L2) cache or Level 3 (L3) cache to meet low-latency requirements.
Benefits:
  • The library helps bound the time needed to access data from a memory buffer to a certain maximum tolerable latency. To achieve low latencies, it creates a buffer in cache using a mechanism that helps protect data from being evicted by the same or other processes attempting to use the same cache. Protection solely from other processes may be obtained by simply using Cache Allocation Technology (without the cache allocation library).
  • The library enables you to move your application from one Intel platform to another without refactoring your code. As long as your application is running on a supported platform, the library will assess the memory hierarchy of the platform and create a buffer based on the latency requirement.
The library is useful when you need to bound the worst-case execution time (WCET) of a particular function
foo()
in your application and cannot achieve that WCET with malloc due to memory access jitter. You can replace malloc with the cache allocation library to bound the access latency of the buffer and in turn reduce WCET.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.