Skip to content

v1.5.0

Compare
Choose a tag to compare
@kris-rowe kris-rowe released this 19 Dec 22:54
· 68 commits to main since this release

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