Skip to content

Releases: Twinklebear/ispc-rs

Release 0.3.4

03 Jun 23:30
Compare
Choose a tag to compare

Update dependencies, thanks @gwihlidal !

Release 0.3.3

18 Sep 17:51
Compare
Choose a tag to compare

Changes

Update dependencies

Release 0.3.2

23 May 19:00
Compare
Choose a tag to compare

Changes

  • Update dependencies, fixes linking with latest msvc + Rust on Windows.
  • Switch from write to write_all when outputting the generated bindings, fixes build on nightly.

Release 0.3.1

02 Sep 00:03
Compare
Choose a tag to compare

Changes

  • Warnings from ISPC will now be logged to the console using the new cargo:warning=, rust-lang/cargo#2630
  • Add support for the --cpu=skx flag added in ISPC 1.9.1

Issues

  • Default task system scalabilty.

Other TODOs

  • Make the default instrumenting provide more useful statistics.

Release 0.3.0

15 Jul 01:43
Compare
Choose a tag to compare

Breaking

This update moves to bindgen 0.18.0 from 0.17.0 which no longer prefixes the names of structs in C with Struct_. If you're using exported structs from ISPC you should only need to do a find and replace to get things building again.

Changes

  • Add support for ISPC's instrumenting to record performance information from ISPC in Rust. A default instrument is provided which simply logs the messages but like the TaskSystem you can override it with your own. I do plan to improve the default as well to log out a more useful summary of statistics. Note that due to a bug in how ISPC generated the ISPCInstrument function declaration ISPC 1.9.1 or higher is required to use instrumenting.
  • Add support for more ISPC compiler options:
    • --cpu=<target> can be set via Config::cpu to override the default CPU target (host)
    • --force-alignment=<value> can be set via Config::force_alignment
    • extra include paths can be specified with Config::include_path
    • Various toggles: --no-omit-frame-pointer, --nostdlib, --nocpp, --quiet, --werror, --woff, --wno-perf
    • --target=<target> can be set via Config::target_isa to override the default ISA and vector width (host)
    • The ISPC compiler version being used is now available via Config::version

Issues

  • Default task system scalabilty.

Other TODOs

  • Make the default instrumenting provide more useful statistics.

Release 0.2.1

22 Jun 14:13
Compare
Choose a tag to compare

Changes

  • When compiling or linking ISPC code fails the process will exit with EXIT_FAILURE instead of panic'ing, this results in the error log being logged out correctly resolving the issue where occasionally the errors wouldn't be printed.
  • Expose more ISPC compiler options:
    • Setting defines
    • Selecting the math lib to use
    • Selecting the addressing mode
    • Extra ISPC compiler optimization options

Issues

  • Default task system scalabilty.

0.2.0 - Task System Flexibility and Dependency Tracking

02 Jun 02:00
Compare
Choose a tag to compare

Changes

  • The TaskSystem trait no longer requires that get_context is implemented, removing the restriction that people use the task system design & types provided in the ispc::task module and are now free to implement their own design.
  • ISPC files and each files dependencies will now be tracked by Cargo, the appropriate cargo:rerun-if-changed info will be given to Cargo.

Issues

  • Sometimes when compilation fails and the library panics to abort compilation the ispc compiler output won't be logged out.
  • Default task system scalabilty.

Release 0.1.0 - Task System

25 May 01:55
Compare
Choose a tag to compare

Changes

  • This release adds initial support for ISPC's task system. Now the ISPC launch construct can be used for task parallelism where the tasks will be scheduled on to num_cpus threads for execution. The task system is relatively simple currently so it may not scale well to a lot of cores or large numbers of launches. It's also possible to replace the task system with your own by implementing the TaskSystem trait, though this is still somewhat experimental and constrained.
  • ispc::compile_library will now panic if any stage of building the library fails, behaving more like gcc-rs.

Issues

  • Sometimes when compilation fails and the library panics to abort compilation the ispc compiler output won't be logged out.
  • Task system scalability
  • Easier/more flexible path for providing your own task execution backend.
  • Task system scalability

0.0.1

17 Apr 04:01
Compare
Choose a tag to compare
Fix some wording