v1.5.0
Features
Memory Pools
A device memory pool implementation is available in the occa::experimental
namespace, targeting applications that frequently allocate/deallocate memory. See Example 17 for more details.
Provide feedback or share your use cases for this feature in the Experimental discussion category.
Outward Interoperability
An unwrap
function has been added to the core classes—device
, memory
, stream
, and streamTag
—which returns a void*
pointer to the mode-specific object used to implement each class.
This advance feature is intended to facilitate interoperability between occa and other accelerated libraries. Application developers are responsible casting the returned pointer to the correct mode-specific type.
In the future, a type-safe interface will be provided for the C++ API.
Breaking Changes
- Compiler flags set via
occa::json
kernel properties now take precedence over the corresponding environment variables. [#622]
Bugfixes
- Dynamic @exclusive sizes [#121]
- Build artifacts (e.g., binaries for kernel + launcher) are not durable [#515]
- Missing initial index value on @inner/@outer loops causes a segfault during translation. [#610]
- A seg fault is encountered when destroying an occa::kernel that was created via a multi-kernel OKL file in CUDA, HIP, or DPC++ modes. [#624]
Contributors
OCCA is a community driven project that relies on the support of people like you. Thank you everyone who contributed to this release!
Full Changelog: v1.4.0...v1.5.0