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

Open
wants to merge 111 commits into
base: main
Choose a base branch
from

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 the please test Trigger testing by creating local PR branch label Aug 28, 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 Aug 29, 2024
@jmitrevs jmitrevs marked this pull request as ready for review August 30, 2024 02:04
@jmitrevs
Copy link
Contributor Author

jmitrevs commented Sep 7, 2024

I think the optimizer to clone outputs needs updates to work with oneAPI.

@jmitrevs
Copy link
Contributor Author

Actually, I believe I was wrong about the optimizer to clone outputs. It was migrated. I added a clone outputs test, and I removed what looks to be the redundant test_stream_multi_clone.py

@jmitrevs jmitrevs added please test Trigger testing by creating local PR branch and removed please test Trigger testing by creating local PR branch labels Sep 18, 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 Sep 24, 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 2, 2024
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.

2 participants