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

Vxsort #37159

Merged
merged 33 commits into from
Jul 15, 2020
Merged

Vxsort #37159

Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
567b620
Initial snapshort of vxsort implementation incorporating source code …
PeterSolMS May 28, 2020
98fc7b1
Bug fix from Dan.
PeterSolMS May 29, 2020
441033b
Use bigger mark list for experiments.
PeterSolMS May 29, 2020
42d5acb
Give up if the mark list size is bigger than a reasonable fraction of…
PeterSolMS May 29, 2020
9fee09e
Latest version from Dan, disable for ARM64.
PeterSolMS Jun 3, 2020
6af96dd
Fixes for Linux compile, ended up disabling vxsort for Linux for now.
PeterSolMS Jun 3, 2020
af23cd2
Experimenting with 32-bit sort - the variation that gathers mark list…
PeterSolMS Jun 8, 2020
4c03ee4
32-bit sort - preserve failing case.
PeterSolMS Jun 8, 2020
a6b2305
Do the pointer compression/decompression in place, to improve perform…
PeterSolMS Jun 10, 2020
05505de
Merge branch 'master' into vxsort
PeterSolMS Jun 10, 2020
2f3d330
Introduce runtime check whether CPU supports AVX2 instruction set.
PeterSolMS Jun 18, 2020
912f9e8
Implement mark list growth.
PeterSolMS Jun 19, 2020
7e43b76
Integrate new version including AVX512 code path.
PeterSolMS Jun 23, 2020
0f543de
Implement runtime test for AVX512 support.
PeterSolMS Jun 23, 2020
f49b16f
Move the files for the vectorized sort to their own directory, add st…
PeterSolMS Jun 24, 2020
d38cfee
Get rid of unneeded #include statement in two files.
PeterSolMS Jun 24, 2020
8a64ab2
Address codereview feedback to specifically say AVX512F instead of ju…
PeterSolMS Jun 24, 2020
1050697
Fix CMakeLists.tx files for non-x64 non-Windows targets, introduce se…
PeterSolMS Jun 25, 2020
01f6797
Instead of modifying the tool-generated header file corinfoinstructio…
PeterSolMS Jun 26, 2020
3dc4f0a
Move AVX2/AVX512 instruction set detection to GC side.
PeterSolMS Jun 30, 2020
16f1782
Use vectorized packer, switch packed range from uint32_t to int32_t, …
PeterSolMS Jul 2, 2020
8d51d90
Add GCConfig setting to turn vectorized sorting off, streamline ISA d…
PeterSolMS Jul 3, 2020
c9a7b76
Several small improvements:
PeterSolMS Jul 3, 2020
43e5d38
Address codereview feedback - add constants for the thresholds above …
PeterSolMS Jul 6, 2020
cd6660a
Add license headers and entry in THIRD-PARTY_NOTICES.TXT for Dan's ve…
PeterSolMS Jul 6, 2020
c3a4974
Update license headers
PeterSolMS Jul 8, 2020
9a0acaa
Address code review feedback:
PeterSolMS Jul 10, 2020
515cae6
Snapshot for Linux changes
PeterSolMS Jul 10, 2020
338c1c9
Merge remote-tracking branch 'origin/vxsort' into vxsort
PeterSolMS Jul 10, 2020
2409c50
Add more definitions to immintrinh.h
PeterSolMS Jul 10, 2020
08b4c4c
Fix cmake warnings about mismatched endif clauses.
PeterSolMS Jul 10, 2020
f87af51
Disable Linux support for now due to multiple compile & link errors.
PeterSolMS Jul 13, 2020
1301d66
Address code review feedback:
PeterSolMS Jul 15, 2020
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
17 changes: 16 additions & 1 deletion src/coreclr/src/gc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,20 @@ else()
windows/gcenv.windows.cpp)
endif(CLR_CMAKE_HOST_UNIX)

if (CLR_CMAKE_TARGET_WIN32 AND CLR_CMAKE_TARGET_ARCH_AMD64)
set ( GC_SOURCES
${GC_SOURCES}
vxsort/isa_detection_dummy.cpp
vxsort/do_vxsort_avx2.cpp
vxsort/do_vxsort_avx512.cpp
vxsort/machine_traits.avx2.cpp
vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.cpp
vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.cpp
vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.cpp
vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.cpp
)
endif (CLR_CMAKE_TARGET_WIN32 AND CLR_CMAKE_TARGET_ARCH_AMD64)

if (CLR_CMAKE_TARGET_WIN32)
set(GC_HEADERS
env/common.h
Expand Down Expand Up @@ -74,7 +88,8 @@ if (CLR_CMAKE_TARGET_WIN32)
handletable.inl
handletablepriv.h
objecthandle.h
softwarewritewatch.h)
softwarewritewatch.h
vxsort/do_vxsort.h)
endif(CLR_CMAKE_TARGET_WIN32)

if(CLR_CMAKE_HOST_WIN32)
Expand Down
Loading