Skip to content

Releases: libocca/occa

v1.0.6

09 Aug 16:19
Compare
Choose a tag to compare

⚠️ 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!)

v1.0.5

31 Jul 07:30
Compare
Choose a tag to compare

⚠️ Breaking Changes

C++

  • [e529137] Removed occa::getKernelProperties()
  • [d88218a] For UVA pointers:occa::freeocca::freeUvaPtr

C

  • [6e895de] occaDeviceUmallococcaDeviceUMalloc
  • [6e895de] occaWaitForoccaWaitForTag
  • [6e895de] occaDeviceWaitForoccaDeviceWaitForTag
  • [6e895de] occaTimeBetweenoccaTimeBetweenTags
  • [6e895de] occaDeviceTimeBetweenoccaDeviceTimeBetweenTags

⭐ Features

Coverage (57.9% → 70.2%!)

Part of code % Coverage Change LOC Coverage Change
Headers 74.7%91.5% (+16.8%) 714 1374 (+660)
C API 24.1%99.4% (+75.3%) 139 655 (+516)
C++ API 58.0%67.0% (+ 9.0%) 834710374 (+2027)
IO Tooling 62.2%97.3% (+35.1%) 225 326 (+101)
General Tooling 51.0%63.7% (+12.7%) 1249 1524 (+275)
OKL Parser 61.4%63.7% (+ 2.3%) 6479 7063 (+584)

C++

C

  • [9c6e5ea] Added occaPropertiesHas
  • [6b06820] Added occaFreeUvaPtr
  • [90cf5d5] Added occaUndefined and occaIsUndefined
  • [87e7000] Added occaIsDefault

Misc

  • [e529137][#154] CLI options that take arguments can be passed as: -Dfoo=1-D foo=3

  • [3707f9e] Examples have arg parsing to make them more interactive

  • [dae5308] occa::sys::rmrf cannot delete any path that has less than 2 parent directories (e.g. / or /usr/bin) without:

     occa::settings()["options/safe-rmrf"] = false;

🐛 Bugs Fixed

  • [855e967] Exclusive array was set at the end, not beginning
  • [5df9319] OpenMP was using Serial parser
  • [63c1258] String merging now works between newlines
  • [ff4310d] Fixed bug using occa::memcpy with 2 non-occa pointers
  • [dae5308] Failed kernel compilations now clear the cache directory
  • [dae5308] Non-conforming OKL kernels now properly fail

v1.0.4

23 Jul 03:35
Compare
Choose a tag to compare

⚠️ Breaking Changes

Memory

  • 405fb35 Renamed occa::opencl::getCLMappedPtrocca::opencl::getMappedPtr

⭐ Features

Kernel

  • 1cc0da8 Kernels can be run with 0 arguments

Memory

  • 405fb35 Added getMappedPtr for OpenCL and CUDA

OKL

🐛 Bugs Fixed

🎉 Contributors

@noelchalmers
@jdahm

v1.0.3

07 Jul 04:52
Compare
Choose a tag to compare

⚠️ Breaking Changes

Mode Properties

[d1fd6e0, 8691434] In order to standardize key names in properties, we're moving to snake_case which is a valid JSON5 identifier for JSON Objects. That way short-hand notations such as

{ mode: 'CUDA', device_id: 0 }

are still valid

Changes:

  • deviceIDdevice_id
  • platformIDplatform_id
  • threadCountthreads
  • pinnedCorespinned_cores
  • compilerFlagscompiler_flags
  • compilerEnvScriptscompiler_env_scripts

⭐️ Features

CLI

[7055d92] Added -I/--include-path and -D/--define to occa transform and occa compile
[a7c578c] Added -v/--verbose to add transform information in comments

🐛 Bugs Fixed

Parser

[80b9972] oklForStatements check the iterator's base type

🎉 Contributors

@pdhahn

v1.0.2

04 Jul 20:03
Compare
Choose a tag to compare

⚠️ Breaking Changes

JSON

[70c9ddf] Swapped dump and toString

⭐️ Features

OKL

[6e760d2] Added {2,3,4} (such as double2, double3, double4)
[f5cf04b] restrict -> @restrict

Sys

[#145, 3fc6753] Added dlerror messages to dlopen and dlsym

IO

[cb5eec7] Fixed ~/ expansion

CLI

[d3bec39, 9d26399] Added compile and translate options to occa

🐛 Bugs Fixed

Parser

[#133, fd248c6] Added vartype nodes for parenCast expressions
[#136, #140, e672972] Added type expansion to get around issue
[#147, f8a4ac8] Fixed statement attributes getting overridden
[db2f263] withLauncher success also depends on the host

🎉 Contributors

@jedbrown

v1.0.1

16 Jun 03:48
Compare
Choose a tag to compare

Bug Fixes

  • aa757b9 Dims on GPU modes weren't being set properly

Testing

  • 895bb70 Travis CI error logs cap at 4MB

v1.0.0

13 Jun 10:27
Compare
Choose a tag to compare

v1.0.0-alpha.6

31 Mar 16:25
Compare
Choose a tag to compare
v1.0.0-alpha.6 Pre-release
Pre-release

Checkout the v0.2 -> v1.0 Porting Guide

Bug Fixes

  • C++
    • #99 kernel::free() removes itself from the device kernel cache

v1.0.0-alpha.5

30 Mar 18:56
Compare
Choose a tag to compare
v1.0.0-alpha.5 Pre-release
Pre-release

Checkout the v0.2 -> v1.0 Porting Guide

Change Log

  • C++
    • 7b5dad1 Added mode-specific properties. For example, only when running in OpenCL mode the kernel compilation will be verbose:
    { 
      kernel: { verbose: false },
      mode: { 
        OpenCL: {
         kernel: { verbose: true },
        }
      }
    }
    • 57746d5 Added unicode parsing to occa::json (still keeps it as \uXXXX for the user to parse)

Bug Fixes

  • C++
    • #98 Setting OCCA_VERBOSE works
  • C

v1.0.0-alpha.4

26 Mar 08:39
Compare
Choose a tag to compare
v1.0.0-alpha.4 Pre-release
Pre-release

Checkout the v0.2 -> v1.0 Porting Guide

Bug Fixes

  • C
    • 61fabfc Remove ambiguous call in some compilers