Skip to content

New FPGA reference design: merge sort#1

Merged
tyoungsc merged 25 commits intomasterfrom
new_fpga_ref_design_merge_sort
Jun 24, 2021
Merged

New FPGA reference design: merge sort#1
tyoungsc merged 25 commits intomasterfrom
new_fpga_ref_design_merge_sort

Conversation

@tyoungsc
Copy link
Copy Markdown
Owner

@tyoungsc tyoungsc commented May 4, 2021

Signed-off-by: tyoungsc tanner.young-schultz@intel.com

Description

Creating new FPGA reference design; merge sort (NOTE FROM REVIEWER: please add more detail here for the PR to the main repo)

External Dependencies

None

Type of change

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

How Has This Been Tested?

  • Command Line
    No method to test this with our infra yet, so I tested all 3 flows manually.

tyoungsc added 4 commits May 4, 2021 12:46
Signed-off-by: tyoungsc <tanner.young-schultz@intel.com>
Signed-off-by: tyoungsc <tanner.young-schultz@intel.com>
only the first merge unit
Changed Shuffle to Partition
Updated pictures and README
Used existing pipe_array code (instead of using my own)
Code cleanup and comments

Tested in emulation and reports, doing a HW build now
@tyoungsc tyoungsc changed the title First commit for merge sort design New FPGA reference design: merge sort May 6, 2021
Copy link
Copy Markdown
Collaborator

@mdbtucker mdbtucker left a comment

Choose a reason for hiding this comment

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

Done reviewing all non-source (.hpp .cpp) files

tyoungsc added 3 commits May 17, 2021 09:48
CMake update
Removed line from samples.json that was not necessary
Deleted unused files
Copy link
Copy Markdown
Collaborator

@mdbtucker mdbtucker left a comment

Choose a reason for hiding this comment

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

Please confirm you've run clang-format on all code.

merge unit, use a bitonic sorter on the input, rather than a simple
partition.

Updated README and pictures to fit the new design.

Addressed Mike's most recent review comments
@mdbtucker mdbtucker marked this pull request as draft May 31, 2021 14:00
Copy link
Copy Markdown
Collaborator

@mdbtucker mdbtucker left a comment

Choose a reason for hiding this comment

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

Not many comments, I don't know if the code is in really good shape, or I'm feeling lenient, or I'm just lazy :-).

tyoungsc added 4 commits June 24, 2021 12:01
Renamed main file to main.cpp
Used impu namespace in unrolledloop, pipearray, and static_math
Renamed static_math.hpp to impu_math.hpp
Updated README, Windows VS files, and CMake with these changes
Comments
Copy link
Copy Markdown
Collaborator

@mdbtucker mdbtucker left a comment

Choose a reason for hiding this comment

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

Looks good, you can go ahead and create a PR to the main repo.

@tyoungsc tyoungsc marked this pull request as ready for review June 24, 2021 21:02
@tyoungsc tyoungsc merged commit 202ff82 into master Jun 24, 2021
tyoungsc added a commit that referenced this pull request Jun 24, 2021
…_sort"

This reverts commit 202ff82, reversing
changes made to 72580ac.
tyoungsc added a commit that referenced this pull request Jul 6, 2021
…torials. (oneapi-src#553)

* First commit for merge sort design

Signed-off-by: tyoungsc <tanner.young-schultz@intel.com>

* Cleaned up MergeSort.hpp a bit using defines

Signed-off-by: tyoungsc <tanner.young-schultz@intel.com>

* Formatting/comments

* Reduced area by connecting Partition unit (previously called Shuffle) to
only the first merge unit
Changed Shuffle to Partition
Updated pictures and README
Used existing pipe_array code (instead of using my own)
Code cleanup and comments

Tested in emulation and reports, doing a HW build now

* Fixed bug with no-USM BSPs in Produce kernel
Slight code cleanup

* README update after Mike's review
CMake update
Removed line from samples.json that was not necessary
Deleted unused files

* Changed Windows specific flag to use '/' instead of '-'

* CMake update

* Removed all pointer arithmetic for offseting to the inside of kernels
(to avoid runtime issue)

* Big change to example design: encorperate a new multi-element per cycle
merge unit, use a bitonic sorter on the input, rather than a simple
partition.

Updated README and pictures to fit the new design.

Addressed Mike's most recent review comments

* Code cleanup: changed some variable names and comments

* README update

* Picture update

* Comments

* Code cleanup and comments

* Small change to README

* Merged shannonization VCXPROJ files into a single one (as per all the
other tests).
Small update to source file to change II target for A10 and fix indenting

* Adding file I missed in previous commit

* Updated comment

* Grammar update

* Again

* Updating design output and README

* Simplified Produce kernel

* Allowed SORT_WIDTH to be 1 (1 element per cycle)
Improved Merge kernel for case where SORT_WIDTH=1 with shannonization

* Code cleanup
        Variable renaming
        Comments
        Grammar

* Comments, formatting, README grammar changes, and general cleanup :)

* Renamed all files to match google style
Renamed main file to main.cpp
Used impu namespace in unrolledloop, pipearray, and static_math
Renamed static_math.hpp to impu_math.hpp
Updated README, Windows VS files, and CMake with these changes

* README updates
Comments

* Changed filenames to use underscores between words

* Added 'pipe' namespace to impu namespace for pipe utilities

* Revert "Merge pull request #1 from tyoungsc/new_fpga_ref_design_merge_sort"

This reverts commit 202ff82, reversing
changes made to 72580ac.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants