Skip to content

Project 2: Thomas Shaw#43

Open
printer83mph wants to merge 17 commits intoCIS5650-Fall-2025:mainfrom
printer83mph:main
Open

Project 2: Thomas Shaw#43
printer83mph wants to merge 17 commits intoCIS5650-Fall-2025:mainfrom
printer83mph:main

Conversation

@printer83mph
Copy link

@printer83mph printer83mph commented Sep 17, 2025

Repo link

Using late day if optimal, first time I forgot to build in release mode instead of debug

  • Features
    • CUDA exclusive scan and compaction implementations!
    • Work-efficient algorithm speeds up scan even more!
      • Uses segmented blocks running in-place at the same time without worry of race condition, with arbitrary size input... can be adapted to use shared memory!
    • Faster scan than CPU!!
    • GPU Radix Sort implementation
      • (tested against CPU version in main)
    • Python analysis module for spitting out nice CSV files measuring performance

* Implement CPU stream compaction

* patch: fix CPU compaction with scan implementation
* chore: update clang-format column limit

* Implement naive parallel scan

* patch: set otherwise unset values in CPU implementation
* Implement upsweep in efficient scan

* Add down-sweep logic to efficient scan

* patch: expect N to be a pow of 2

* Implement full efficient scan

* Implement StreamCompaction::Common methods

* Implement Efficient::compact

- Consumes Efficient::scan, with new parameter to turn off timer
* Add kernMapToBit helper kernel for radix

* Implement kernInvert method

* Add kernScatterRadix in new mod + namespace

* patch: match kernInvert header signature

* Complete radix GPU implementation

* Add CPU radix implementation for reference

* patch: rework main file variables to not lose my mind

* Add testing for radix
* Add python project for analysis

* Implement initial block size analysis

* patch: clean up block size analysis

* Add scan alg comparison script

* Bump array sizes in testing

* Add README system info

* Add block size analysis

* Add scan performance and main output
@printer83mph printer83mph changed the title Thomas Shaw: Project 2 Project 2: Thomas Shaw Sep 17, 2025
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.

1 participant