Skip to content

HeteroCL v0.2

Compare
Choose a tag to compare
@seanlatias seanlatias released this 03 May 23:48
01be7f5

Release Note

We are happy to announce that HeteroCL is now an open-source project. HeteroCL is currently both Python 2 and Python 3 compatible. Following we list the currently supported features and its related links (in tests and/or in the documentation).

General API

  • hcl.init (initialize a HeteroCL environment)
  • hcl.placeholder (create an input placeholder)
  • hcl.create_schedule (create a schedule for hardware customization)
  • hcl.lower (lower the program to IR for investigation)
  • hcl.build (build the program)
  • Related links: test, tutorial, doc

Data Type

  • hcl.Int, hcl.UInt (can have arbitrary bitwidth up to 255 bits)
  • hcl.Fixed, hcl.UFixed (can have arbitrary bitwidth up to 255 bits)
  • hcl.Float (can be 32 or 64 bits)
  • Related links: test, tutorial, doc

Imperative DSL

  • hcl.and_, hcl.or_
  • hcl.if_, hcl.elif_, hcl.else_
  • hcl.for_, hcl.while_, hcl.break_
  • bit operations (get bit, set bit, get slice, set slice)
  • hcl.def_, hcl.return_ (a custom-defined HeteroCL module)
  • Related links: general test, def test, tutorial, doc

Compute API

  • hcl.compute (compute a new tensor according to the given formula)
  • hcl.update (update an exsiting tensor according to the given formula)
  • hcl.mutate (mutatively update an existing tensor)
  • hcl.reduce_axis (create a reduce axis for reduction operation)
  • hcl.sum (perform a summation on the given axis)
  • hcl.pack, hcl.unpack (pack/unpack a tensor to larger/lower bitwidth)
  • hcl.Stage (create a stage that contains user-defined operations)
  • Related links: general test, reduction test, pack/unpck test, stage test, tutorial, doc

Compute Customization

Data Type API & Data Type Customization

  • hcl.create_scheme (create a scheme for data type customization)
  • hcl.create_schedule_from_scheme
  • hcl.downsize (downsize integers to lower bit-width)
  • hcl.quantize (quantize floating-points to fixed-points)
  • Related links: test, tutorial, doc

Memory Customization

  • partition, reshape
  • reuse_at (create a reuse buffer provided the input tensor and stage)
  • Related links: test, tutorial, doc

Back-end Target

  • llvm (default target for CPU)
  • vhls (generate Vivado HLS code)
  • vhls_csim (generate an executable compiled from Vivado HLS code)
  • ihls (generate Intel HLS code)
  • merlinc (generate Merlin C code)
  • soda (generate SODA DSL)
  • soda_xhls (generate Vivado HLS code from SODA DSL)
  • Related links: vhls test, ihls test, merlinc test, soda test, tutorial, SDOA tutorial

Stable Samples