oneAPI-samples icon indicating copy to clipboard operation
oneAPI-samples copied to clipboard

FPGA: Add new sample `SVD`

Open KevinUTAT opened this issue 1 year ago • 1 comments

Description

Adding a new FPGA reference design Singular Value Decomposition.

Testing

Running reg-tests, will update test links once finished.

Checklist

Administrative

  • [x] Review sample design with the appropriate Domain Expert: <insert Name Here>
  • [x] If you have any new dependencies/binaries, inform the oneAPI Code Samples Project Manager

Code Development

  • [x] Implement coding guidelines and ensure code quality. see wiki for details
  • [x] Adhere to readme template
  • [x] Enforce format via clang-format config file
  • [x] Adhere to sample.json specification. https://github.com/oneapi-src/oneAPI-samples/wiki/sample-json-specification
  • [ ] Ensure/create CI test configurations for sample (ciTests field) https://github.com/oneapi-src/oneAPI-samples/wiki/sample-json-ci-test-object
  • [ ] Run jsonlint on sample.json to verify json syntax. www.jsonlint.com

Security and Legal

  • [ ] OSPDT Approval (see Project Manager for assistance)
  • [ ] Compile using the following compiler flags and fix any warnings, the falgs are: "/Wall -Wformat-security -Werror=format-security"
  • [ ] Bandit Scans (Python only)
  • [ ] Virus scan

Review

  • [x] Review DPC++ code with Paul Peterseon. (GitHub User: pmpeter1)
  • [x] Review readme with Tom Lenth(@tomlenth) and/or Project Manager
  • [ ] Tested using Dev Cloud when applicable

KevinUTAT avatar May 03 '24 21:05 KevinUTAT

Adding @pmpeter1 and @tomlenth per request by @KevinUTAT

jimmytwei avatar May 07 '24 14:05 jimmytwei

The code looks good, did you find the time to benchmark the kernel versus a CPU execution using Python or Matlab?

yuguen avatar Sep 06 '24 09:09 yuguen

The code looks good, did you find the time to benchmark the kernel versus a CPU execution using Python or Matlab?

yes, with the same 32x32 input, numpy.linalg.svd gives around 1000 matrices/s on the farm machine (pretty much the same as what we get on n6001) and Matlab isn't as good at around 600 matrices/s.

KevinUTAT avatar Sep 06 '24 13:09 KevinUTAT