Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
0e02147
ci: configure vscode settings and setup clangd config
mialana Sep 12, 2025
7f52fc2
fix: ensure thrust header files are found by clangd
mialana Sep 12, 2025
42cdf63
ci: run clang-format
mialana Sep 12, 2025
d782050
feat: finish cpu::scan
mialana Sep 12, 2025
4492c3e
feat: implement cpu::compactWithoutScan
mialana Sep 12, 2025
927bd43
feat: implement cpu::compactWithScan
mialana Sep 13, 2025
8940b2e
fix: solve all clangd warnings
mialana Sep 13, 2025
c9c9c5d
feat: implement naive::scan first draft
mialana Sep 13, 2025
74241f8
fix: add checkCUDAError calls
mialana Sep 13, 2025
18feda5
ci: supress warnings from clangd for thrust external libraries
mialana Sep 13, 2025
c623575
feat: implement thrust scan
mialana Sep 13, 2025
d1d297b
refactor: naive impl does not require copying entire array
mialana Sep 16, 2025
30cc13b
feat: complete work efficient scan implementation
mialana Sep 17, 2025
06da4f5
feat: implement work efficient compact scan
mialana Sep 17, 2025
31b1405
refactor: naming and lint
mialana Sep 17, 2025
981693b
feat: remove modulo and impl efficient stride length
mialana Sep 17, 2025
f09634e
feat: complete first bout of data collection
mialana Sep 17, 2025
0b91a31
feat: finish peformance analysis and README
mialana Sep 17, 2025
5716623
feat: implement radix sort first draft
mialana Sep 26, 2025
6730045
fix: wrong casing for true vs false positions in radix::scatter
mialana Sep 26, 2025
ff938f3
fix: 32 bit overflow in scan, sigint in compact non-power of two
mialana Sep 26, 2025
06b8194
ci: add TODO for removing uneccessary device array mallocs in efficie…
mialana Sep 26, 2025
db49a5b
feat: make radix sort in-place
mialana Sep 27, 2025
de091db
ci: update cmake config, implement radix sort-by-key for custom and t…
mialana Sep 27, 2025
f61cd4b
feat: create test for sort by key
mialana Sep 27, 2025
3b707c9
feat: implement radix sort by key
mialana Sep 27, 2025
0af3dd2
refactor: create a radix::sortByKeyWrapper
mialana Sep 27, 2025
38dc35d
refactor scan signature and add comments
mialana Sep 27, 2025
de446de
feat: cleanup default workflow
mialana Sep 28, 2025
617709b
fix: default build should not run
mialana Sep 28, 2025
b10bd52
feat: implement 'squished' up-sweep
mialana Sep 28, 2025
d3bf927
fix: misunderstood upsweep
mialana Sep 28, 2025
9e6b2ad
refactor: downsweep efficient scan
mialana Sep 29, 2025
462f8f2
feat: create Shared:: scan modules
mialana Sep 29, 2025
ecb711c
feat: implement shared intra-block scan
mialana Sep 29, 2025
9ea92e9
feat: implement shared memory in work-efficient scan
mialana Sep 29, 2025
06249b9
feat: implement bank conflict fix
mialana Sep 29, 2025
f103144
feat: implement recursive shared memory scan
mialana Sep 29, 2025
90e1689
feat: modify radix::sort to use Shared::scan
mialana Oct 4, 2025
9d11b4a
feat: implement scanByKey with Shared::scan
mialana Oct 4, 2025
65bb6ea
feat: implement compactByKey
mialana Oct 4, 2025
411531b
feat: use remove_if to implement thrust ground truth
mialana Oct 4, 2025
dccc32b
Merge pull request #1 from mialana/radix-sort
mialana Nov 17, 2025
0245fdd
ci: port to windows, move over new versions of ci files, remove unnec…
mialana Apr 24, 2026
b49596a
feat: use as package in cmake
mialana Apr 25, 2026
6c8310b
ci: cmake changes for shared library, proper intellisense support
mialana Apr 25, 2026
7f71995
ci: begin code cleanup, working in rider
mialana Apr 25, 2026
c69714f
ci: add .idea dir to vc (due to solo dev)
mialana Apr 25, 2026
052946c
feat: port to CLion, fix all build warnings
mialana Apr 25, 2026
a183438
run clang-format
mialana Apr 25, 2026
3990ce0
refactor: testing utils and performance timer
mialana Apr 26, 2026
0279742
refactor: code syntax, function signatures, naming conventions
mialana Apr 26, 2026
93dbf72
ci: declare all kernels in header units
mialana Apr 26, 2026
bcb640b
refactor: test sources to be cxx compiled
mialana Apr 26, 2026
2b95ab8
feat: integrate googletest into tests executable target
mialana Apr 26, 2026
4b979ca
refactor: naive scan
mialana Apr 26, 2026
23a4625
fix: naive scan not propogating ping pong pointer swap, validate all …
mialana Apr 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
236 changes: 236 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,236 @@
# yaml-language-server: $schema=https://json.schemastore.org/clang-format.json
---
Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveAssignments:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveBitFields:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveShortCaseStatements:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCaseArrows: false
AlignCaseColons: false
AlignConsecutiveTableGenBreakingDAGArgColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenCondOperatorColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenDefinitionColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments:
Kind: Never
OverEmptyLines: 1
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowBreakBeforeNoexceptSpecifier: Never
AllowShortBlocksOnASingleLine: Always
AllowShortCaseExpressionOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: true
AllowShortCompoundRequirementOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: AllIfsAndElse
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AttributeMacros:
- __capability
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BracedInitializerIndentWidth: 4
BreakBeforeConceptDeclarations: Always
BreakAdjacentStringLiterals: true
BreakAfterAttributes: Leave
BreakAfterJavaFieldAnnotations: false
BreakAfterReturnType: ExceptShortType
BreakArrays: true
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Allman
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeComma
BreakFunctionDefinitionParameters: false
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
BreakTemplateDeclarations: Yes
ColumnLimit: 100
CommentPragmas: "^ IWYU pragma:"
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
DerivePointerAlignment: false
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: Always
FixNamespaceComments: true
ForEachMacros:
- forever
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Preserve
IncludeCategories:
- Regex: "^<Q.*"
Priority: 200
SortPriority: 200
CaseSensitive: true
IncludeIsMainRegex: "(Test)?$"
IncludeIsMainSourceRegex: ""
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: true
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: None
IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: false
InsertBraces: false
InsertNewlineAtEOF: true
InsertTrailingCommas: None
IntegerLiteralSeparator:
Binary: 0
BinaryMinDigits: 0
Decimal: 0
DecimalMinDigits: 0
Hex: 0
HexMinDigits: 0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLines:
AtEndOfFile: false
AtStartOfBlock: false
AtStartOfFile: false
LambdaBodyIndentation: Signature
LineEnding: LF
MacroBlockBegin: ""
MacroBlockEnd: ""
MainIncludeChar: Quote
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 4
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: NextLine
PenaltyBreakAssignment: 150
PenaltyBreakBeforeFirstCallParameter: 300
PenaltyBreakComment: 1000
PenaltyBreakFirstLessLess: 400
PenaltyBreakOpenParenthesis: 0
PenaltyBreakScopeResolution: 500
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 50
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 300
PointerAlignment: Left
PPIndentWidth: -1
QualifierAlignment: Leave
ReferenceAlignment: Pointer
ReflowComments: false
RemoveBracesLLVM: true
RemoveParentheses: MultipleParentheses
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Always
ShortNamespaceLines: 1
SkipMacroDefinitionBody: false
SortIncludes: false
SortJavaStaticImport: Before
SortUsingDeclarations: Lexicographic
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDefinitionName: false
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
AfterPlacementOperator: true
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: Never
SpacesInContainerLiterals: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParens: Never
SpacesInParensOptions:
ExceptDoubleParentheses: false
InCStyleCasts: false
InConditionalStatements: false
InEmptyParentheses: false
Other: false
SpacesInSquareBrackets: false
Standard: Auto
TableGenBreakInsideDAGArg: DontBreak
TabWidth: 4
UseTab: Never
VerilogBreakBetweenInstancePorts: true
Loading