Skip to content

v1.0.6

Compare
Choose a tag to compare
@dmed256 dmed256 released this 09 Aug 16:19

⚠️ Breaking Changes

  • [4199d8f] Removed occa::cuda::getMappedPtr and occa::opencl::getMappedPtr and replaced them with

    occa::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 accordingly

    cuda: { 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 to

    unified: 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];
      }
    }

🐛 Bugs Fixed

  • [b41ed34] UVA range checks had incorrect inclusive end
  • [1f513fc] Preprocessor treats undefined identifiers as 0 (Thanks @pdhahn!)