Skip to content

Releases: uxlfoundation/oneapi-construction-kit

Version 4.0.0

30 Jul 13:07
538093a
Compare
Choose a tag to compare

Version 4.0.0

Feature Additions:

  • RISC-V support for host target (either cross compiled or native)
  • Features can be enabled for host targets using the cmake
    option CA_HOST_TARGET_<ARCH>_FEATURES or the environment variable
    CA_HOST_TARGET_FEATURES. This uses a format similar to -mattr on tools like
    opt e.g. "+v;-zfencei".
  • The compiler-passes directory has been created to just allow important
    compiler passes to be made available externally such as the vectorizer vecz.
  • Support for SPIR 1.2 programs (cl_khr_spir) has been dropped.

Upgrade guidance:

  • LLVM 17 and 18 only are supported in this release.
  • Added support for a Remote HAL over tcp/ip, primarily for demoing new RISC-V
    targets quickly
  • The cmake variable CA_HOST_TARGET_CPU has been split into capitalized
    architecture variants of the form CA_HOST_TARGET_<ARCH>_CPU e.g
    CA_HOST_TARGET_X86_64_CPU, CA_HOST_TARGET_AARCH64_CPU and
    CA_HOST_TARGET_RISCV64_CPU. The environment variable CA_HOST_TARGET_CPU
    remains the same name. Note that CA_HOST_TARGET_CPU_NATIVE is no longer
    supported but can be achieved by using native as a value for the variants.
  • The mux spec has been bumped:
    • 0.77.0: to loosen the requirements on the mux event type used by
      DMA builtins.
    • 0.78.0: to introduce mux builtins for sub-group, work-group, and
      vector-group operations.
    • 0.79.0: to introduce mux builtins for sub-group shuffle operations.
    • 0.80.0: to introduce support for 64-bit atomic operations.
  • The compiler::ImageArgumentSubstitutionPass now replaces sampler typed
    parameters in kernel functions with i32 parameters via a wrapper function.
  • The host target as a consequence now passes samplers to kernels as 32-bit
    integer arguments, not as integer arguments disguised as pointer values.
  • The compiler::utils::ReplaceBarriersPass has been replaced with the
    compiler::utils::LowerToMuxBuiltinsPass.
  • The compiler::utils::HandleBarriersPass has been renamed to the
    compiler::utils::WorkItemLoopsPass.
  • The compiler::utils::createLoop API has moved its list of IVs parameter
    into its compiler::utils::CreateLoopOpts parameter. It can now also set the
    IV names via a second CreateLoopOpts field.
  • Support for LLVM versions is now limited to LLVM 17 and LLVM 18. Support for
    earlier LLVM versions has been removed.
  • Support for FMA (fused multiply-add) is required for the device. For the host
    device for x86-64, this means only x86-64-v3 and newer are supported. This
    roughly translates to 2015 or newer, both for Intel and for AMD.
  • Although hardware support for FMA is available on all platforms we currently
    test, if you are using OCK on a platform we do not test and encounter
    issues, please let us know by opening an issue!
  • compiler-utils library has been split into compiler-pipeline and
    compiler-binary-metadata to allow use of compiler pipeline utilities without
    the binary metadata requirements. Both will be needed for mux targets.
  • The utility function addParamToAllFunctions has been moved to
    ReplaceLocalModuleScopeVariablesPass and renamed as it is only used there.
  • OpenCL-Headers now fetches from the github repo with tag v2024.05.08.This can
    be overridden using -DFETCHCONTENT_SOURCE_DIR_OPENCL_HEADERS to point to a
    different repo.

OCK Demo Package 2024-03-06-f211f42

06 Mar 18:05
f211f42
Compare
Choose a tag to compare
Pre-release

ock-demo build 2024-03-06-f211f42

OCK daily 2024-03-05-a390b0f

05 Mar 20:27
a390b0f
Compare
Choose a tag to compare
Pre-release

Daily build 2024-03-05-a390b0f

OCK Demo Package 2024-02-29-f0588da

29 Feb 06:23
f0588da
Compare
Choose a tag to compare
Pre-release

ock-demo build 2024-02-29-f0588da

OCK daily 2024-02-06

06 Feb 11:49
9a570d4
Compare
Choose a tag to compare
OCK daily 2024-02-06 Pre-release
Pre-release

Daily build 2024-02-06

OCK daily 2024-01-27

27 Jan 09:00
6efc9b8
Compare
Choose a tag to compare
OCK daily 2024-01-27 Pre-release
Pre-release

Daily build 2024-01-27

OCK daily 2024-01-20

20 Jan 08:58
12e10e5
Compare
Choose a tag to compare
OCK daily 2024-01-20 Pre-release
Pre-release

Daily build 2024-01-20

OCK daily 2024-01-15-691b289

15 Jan 12:35
691b289
Compare
Choose a tag to compare
Pre-release

Daily build 2024-01-15-691b289

OCK daily 2024-01-08-ec45b4f

08 Jan 00:55
Compare
Choose a tag to compare
Pre-release

Daily build 2024-01-08-ec45b4f

Version 3.0.0

02 Aug 09:01
Compare
Choose a tag to compare

Version 3.0.0

Upgrade guidance:

  • The mux spec has been bumped:
    • 0.74.0: to account for changes to BaseModule.
    • 0.75.0: to remove code supporting cl_codeplay_program_snapshot.
    • 0.76.0: to add code supporting cl_intel_required_subgroup_size.
  • The cl_codeplay_program_snapshot extension has been removed.
  • cl::binary::ProgramInfo and cl::binary::KernelInfo have been removed and
    replaced with equivalent structures in the compiler namespace.
  • compiler::Module::finalize no longer takes a callback to populate program
    info - it now takes compiler::ProgramInfo by pointer and populates it
    itself if passed a non-null address.

Feature additions:

  • muxc now supports OpenCL C inputs, before running a (now optional) pass
    pipeline. A device is required for this to work.The file type is worked out
    from the file extension, and LLVM IR is assumed otherwise. Options can be
    provided to this step with -cl-options. This also provides the ability to
    select a device based on its index from 0, using --device-idx <idx>.
  • The cl_intel_required_subgroup_size OpenCL extension is now supported. Note
    that no in-tree targets currently report any supported sub-group sizes so no
    kernels compiled with a required sub-group size will successfully compile.
  • The SPIR-V SubgroupSize execution mode is now supported via the
    SubgroupDispatch capability. Note that other aspects of this capability are
    not supported.
  • The SPIR-V OptNoneINTEL capability is now supported.
  • compiler::BaseModulePassMachinery can now be given compiler options to
    guide its decisions.
  • A new method - compiler::BaseModulePassMachinery::handlePipelineElement -
    has been added to allow more customizable target-specific pipeline component

Future feature dropping for next major release (4.0.0):

  • SPIR 1.2 is deprecated and will be removed.
  • LLVM 15 support will switch to LLVM 17.