Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beginnings of the oneAPI backend #955

Merged
merged 117 commits into from
Oct 25, 2024

Conversation

jmitrevs
Copy link
Contributor

@jmitrevs jmitrevs commented Jan 11, 2024

Description

This is the beginning of the oneAPI backend, and is just included here for easier sharing and discussion. It is not ready for merging. Currently only io_parallel Dense and activation layers are supported.

Some things to discuss are:

  1. The usage of std::array for sending data on the pipe, and also between layers. It is generally easier to send std::array than a struct containing C arrays, I believe. (Note, std::array is passed as nnet::array, so it's possible to change in one place the array definition.)
  2. The addition of oneapi_types.py instead of adding the types in fpga_types.py. I think we want to split fpga_types.py. Otherwise catapult types will soon also come there.
  3. This uses cmake to build the libraries and testbench. The setup is based on the examples in https://github.com/oneapi-src/oneAPI-samples
  4. Currently only oneAPI 2024.0.0 or later is supported. You have to have it installed.

There is more information on the status at the following link:
https://www.icloud.com/keynote/0e6hRDG4E4PazKCJkJ-ur3yTg#oneAPIDev

Type of change

  • New feature (non-breaking change which adds functionality)

Tests

oneAPI has been added as a backend in many tests.

Checklist

  • I have read the guidelines for contributing.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.
  • I have installed and run pre-commit on the files I edited or added.
  • I have added tests that prove my fix is effective or that my feature works.

@jmitrevs jmitrevs added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Oct 2, 2024
@jmitrevs jmitrevs added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Oct 2, 2024
@jmitrevs jmitrevs added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Oct 2, 2024
@jmitrevs jmitrevs added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Oct 21, 2024
@jmitrevs
Copy link
Contributor Author

I updated some oneAPI-specific documentation and docstrings. I did not update the status, however, I figure we do that globally before the next release, since I think we also want to remove the "experimental" tag from Vitis.

@jmitrevs jmitrevs added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Oct 22, 2024
@jmitrevs jmitrevs added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Oct 22, 2024
@jmitrevs jmitrevs added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Oct 24, 2024
@JanFSchulte JanFSchulte added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Oct 24, 2024
Copy link
Contributor

@vloncar vloncar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great. Many thanks Jovan!

@vloncar vloncar merged commit 4518537 into fastmachinelearning:main Oct 25, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
please test Trigger testing by creating local PR branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants