Mojo struct
CacheOperation
@register_passable(trivial)
struct CacheOperation
Represents different GPU cache operation policies.
This struct defines various caching behaviors for GPU memory operations, controlling how data is cached and evicted at different cache levels. The policies affect performance and memory coherency.
Implemented traits
AnyType
,
Copyable
,
Movable
,
UnknownDestructibility
Aliases
ALWAYS
alias ALWAYS = CacheOperation(0)
Cache at all levels. This will be accessed again.
Best for data that will be frequently reused across multiple threads. Provides fastest subsequent access but uses the most cache space.
GLOBAL
alias GLOBAL = CacheOperation(1)
Cache at global level.
Caches data only in the L2 cache, bypassing L1. Good for data shared between different thread blocks.
LAST_USE
alias LAST_USE = CacheOperation(3)
Indicates the cache line will not be used again.
Hints to the cache that this data can be evicted after this access. Helps optimize cache utilization.
STREAMING
alias STREAMING = CacheOperation(2)
Streaming, this is likely to be accessed once.
Optimizes for streaming access patterns where data is only read once. May bypass certain cache levels for better throughput.
VOLATILE
alias VOLATILE = CacheOperation(4)
Don't cache, and fetch again.
Forces reads/writes to bypass cache and go directly to memory. Useful for memory-mapped I/O or when cache coherency is required.
WRITE_BACK
alias WRITE_BACK = CacheOperation(5)
Write back at all coherent levels.
Updates all cache levels and eventually writes to memory. Most efficient for multiple writes to same location.
WRITE_THROUGH
alias WRITE_THROUGH = CacheOperation(6)
Write through to system memory.
Immediately writes updates to memory while updating cache. Provides stronger consistency but lower performance than write-back.
Methods
__eq__
__eq__(self, other: Self) -> Bool
Tests if two CacheOperation instances are equal.
Args:
- other (
Self
): The CacheOperation to compare against.
Returns:
True if the operations are equal, False otherwise.
__ne__
__ne__(self, other: Self) -> Bool
Tests if two CacheOperation instances are not equal.
Args:
- other (
Self
): The CacheOperation to compare against.
Returns:
True if the operations are not equal, False otherwise.
__is__
__is__(self, other: Self) -> Bool
Tests if two CacheOperation instances are identical.
Args:
- other (
Self
): The CacheOperation to compare against.
Returns:
True if the operations are identical, False otherwise.
__isnot__
__isnot__(self, other: Self) -> Bool
Tests if two CacheOperation instances are not identical.
Args:
- other (
Self
): The CacheOperation to compare against.
Returns:
True if the operations are not identical, False otherwise.
mnemonic
mnemonic(self) -> StringSlice[StaticConstantOrigin]
Returns the PTX mnemonic string for this cache operation.
Converts the cache operation into its corresponding PTX assembly mnemonic string used in GPU instructions.
Returns:
A string literal containing the PTX mnemonic for this operation.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!