v1.0.6
⚠️ Breaking Changes
-
[4199d8f] Removed
occa::cuda::getMappedPtr
andocca::opencl::getMappedPtr
and replaced them withocca::memory::ptr("mapped: true")
-
[4199d8f] Allocating mapped/pinned memory (CUDA, OpenCL)
It was too verbose and not as flexible to pass
cuda: { mapped: true } opencl: { mapped: true }
It's now the same for both CUDA and OpenCL
mapped: true
-
[4199d8f] Allocating unified memory (CUDA)
The driver API uses the method
cuMemAllocManaged
so the prop was named accordinglycuda: { managed: true }
However, most users know this feature as unified memory so we're switching the prop name to
unified
.
Similar to mapped allocation, it has been shortened tounified: true
C
- [1f513fc]
occaMemoryPtr(occaMemory)
→occaMemoryPtr(occaMemory, occaProperties)
⭐️ Features
-
[4199d8f] Added
occa::memory::ptr(occa::properties)
-
[abc3bea] Added
#pragma occa attributes
option#pragma occa attributes @kernel void addVectors(const int entries, const float *a, const float *b, float *ab) { #pragma occa attributes @tile(16, @outer, @inner) for (int i = 0; i < entries; ++i) { ab[i] = a[i] + b[i]; } }
↓
@kernel void addVectors(const int entries, const float *a, const float *b, float *ab) { for (int i = 0; i < entries; ++i; @tile(16, @outer, @inner)) { ab[i] = a[i] + b[i]; } }