-
Notifications
You must be signed in to change notification settings - Fork 882
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
Abstracting block reduce and block scan from cuIO kernels with cub
apis
#7278
Abstracting block reduce and block scan from cuIO kernels with cub
apis
#7278
Conversation
…238_block_reduce
…o 6238_block_reduce
cub
apis
Please always label graphs with units. Is higher better or is lower better? |
Lower is better |
And if you are not seeing axes. please change your github theme from black to white just for this PR, my apologies. |
Are these numbers from the benchmarks? |
"Change in perf" is percentage? Multiple? Number of seconds? |
in ms |
OK, an absolute difference is not very helpful. Relative performance (speedup/slowdown) would be helpful. |
If the value is negative, then we are having speed-up, and if it is positive then slowdown. |
Yes, but an absolute change in ms is not helpful unless you know the total time. It's easier to make decisions based on old_time / new_time than on old_time - new_time. |
Codecov Report
@@ Coverage Diff @@
## branch-0.19 #7278 +/- ##
==============================================
Coverage ? 82.20%
==============================================
Files ? 100
Lines ? 16966
Branches ? 0
==============================================
Hits ? 13947
Misses ? 3019
Partials ? 0 Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job untangling some of the reductions, looks so much better now!
got a bunch of small questions and suggestions.
As an initialization kernel, it shouldn't've been a big part of the overall execution anyway and you confirmed it. That's great. So no big slowdowns as a result of this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No issues that I can think of. @vuule's review is quite thorough.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Absolutely in favor of the latest changes. Now the code does exactly what it needs to do 👍
@gpucibot merge |
closes #6238
This PR replaces existing usages of
warp_reduce
orwarp_scans
which were used for block reduction/scan withcub::BlockReduce/cub::BlockScan
.The changes has positive effect on mostly on numerical data processing, but seems to be little slower in case of string type.
all files.zip
Update: Graphs have been updated after fixing a bug which also resolved several other performance issues.
Perf plots
Benchmark Performance
y-axis is in
ms
and there are three sets of plot, one which compares mean performance change next to each other, which also has error bars which is standard deviation calculated using five sets of benchmarks. Next one is difference of performance between cub::block_reduce/cub::block_scan with generic approach and the last one is percentage change in performance compared to branch-0.18. If the value is positive, then test is taking less time, else it is taking more time compared to main branch.CSV READER
![CSV_READER_comp_0_9](https://user-images.githubusercontent.com/42624703/106804864-90914b00-662b-11eb-8e5c-10510e4d4666.png)
![CSV_READER_comp_10_19](https://user-images.githubusercontent.com/42624703/106804866-9129e180-662b-11eb-8deb-a5090e4e2d9a.png)
![CSV_READER_diff_0_39](https://user-images.githubusercontent.com/42624703/106804867-9129e180-662b-11eb-95d3-5415cfe2a58d.png)
![CSV_READER_per_0_39](https://user-images.githubusercontent.com/42624703/106804869-91c27800-662b-11eb-8ecf-2bf16ccc8c00.png)
![ORC_WRITER_comp_40_49](https://user-images.githubusercontent.com/42624703/106804870-91c27800-662b-11eb-8cad-8d06fd299ce8.png)
ORC READER
![ORC_READER_comp_0_9](https://user-images.githubusercontent.com/42624703/107102359-f0c8ee00-67df-11eb-9140-4f9f1147ee02.png)
![ORC_READER_comp_10_19](https://user-images.githubusercontent.com/42624703/107102360-f1618480-67df-11eb-80d5-eab360c80d85.png)
![ORC_READER_comp_20_29](https://user-images.githubusercontent.com/42624703/107102361-f1618480-67df-11eb-8729-d725a8beb91e.png)
![ORC_READER_comp_30_39](https://user-images.githubusercontent.com/42624703/107102362-f1fa1b00-67df-11eb-8541-59e6643791b5.png)
![ORC_READER_comp_40_49](https://user-images.githubusercontent.com/42624703/107102363-f1fa1b00-67df-11eb-864f-f99f2346404b.png)
![ORC_READER_comp_50_59](https://user-images.githubusercontent.com/42624703/107102364-f1fa1b00-67df-11eb-962d-9f71db2b6caf.png)
![ORC_READER_comp_60_69](https://user-images.githubusercontent.com/42624703/107102365-f1fa1b00-67df-11eb-8447-5cc17af20e51.png)
![ORC_READER_comp_70_79](https://user-images.githubusercontent.com/42624703/107102366-f292b180-67df-11eb-9d0c-730be0741eac.png)
![ORC_READER_diff_0_39](https://user-images.githubusercontent.com/42624703/107102368-f292b180-67df-11eb-8b0b-0ab94f06276b.png)
![ORC_READER_diff_40_79](https://user-images.githubusercontent.com/42624703/107102370-f292b180-67df-11eb-9d57-ce820dd586c6.png)
![ORC_READER_per_0_39](https://user-images.githubusercontent.com/42624703/107102371-f32b4800-67df-11eb-80ad-317ee8b29a51.png)
![ORC_READER_per_40_79](https://user-images.githubusercontent.com/42624703/107102372-f32b4800-67df-11eb-8180-fe59a4c2d5da.png)
ORC WRITER
![ORC_WRITER_comp_0_9](https://user-images.githubusercontent.com/42624703/107102389-03432780-67e0-11eb-8782-a71ddadb72f3.png)
![ORC_WRITER_comp_10_19](https://user-images.githubusercontent.com/42624703/107102390-03dbbe00-67e0-11eb-8825-4896cffabb49.png)
![ORC_WRITER_comp_20_29](https://user-images.githubusercontent.com/42624703/107102392-03dbbe00-67e0-11eb-94dd-6380105f25e8.png)
![ORC_WRITER_comp_30_39](https://user-images.githubusercontent.com/42624703/107102393-03dbbe00-67e0-11eb-853f-6d2d518c038f.png)
![ORC_WRITER_comp_40_49](https://user-images.githubusercontent.com/42624703/107102394-04745480-67e0-11eb-8be4-48a3efdbf446.png)
![ORC_WRITER_comp_50_59](https://user-images.githubusercontent.com/42624703/107102395-04745480-67e0-11eb-8272-4563f28e9bf6.png)
![ORC_WRITER_comp_60_69](https://user-images.githubusercontent.com/42624703/107102396-04745480-67e0-11eb-9597-58142b1dfa99.png)
![ORC_WRITER_comp_70_79](https://user-images.githubusercontent.com/42624703/107102397-050ceb00-67e0-11eb-8e9f-56305d11cfbc.png)
![ORC_WRITER_comp_80_89](https://user-images.githubusercontent.com/42624703/107102398-050ceb00-67e0-11eb-912e-1cea0a96721b.png)
![ORC_WRITER_comp_90_99](https://user-images.githubusercontent.com/42624703/107102399-050ceb00-67e0-11eb-86f4-98de207ec87d.png)
![ORC_WRITER_diff_0_39](https://user-images.githubusercontent.com/42624703/107102401-05a58180-67e0-11eb-911c-66ea27d49633.png)
![ORC_WRITER_diff_40_79](https://user-images.githubusercontent.com/42624703/107102402-05a58180-67e0-11eb-8d3b-5a9f51620ae2.png)
![ORC_WRITER_diff_80_119](https://user-images.githubusercontent.com/42624703/107102403-05a58180-67e0-11eb-9e6c-9a0d3873502b.png)
![ORC_WRITER_per_0_39](https://user-images.githubusercontent.com/42624703/107102404-063e1800-67e0-11eb-9534-646db30944b6.png)
![ORC_WRITER_per_40_79](https://user-images.githubusercontent.com/42624703/107102406-063e1800-67e0-11eb-89bb-b77e5c627f68.png)
![ORC_WRITER_per_80_119](https://user-images.githubusercontent.com/42624703/107102407-063e1800-67e0-11eb-9be3-3d5bb106525c.png)
PARQUET CHUNKED WRITER
![PQ_CHUNK_WRITER_comp_0_9](https://user-images.githubusercontent.com/42624703/107102412-0b02cc00-67e0-11eb-9038-162b4bcfe2a7.png)
![PQ_CHUNK_WRITER_diff_0_39](https://user-images.githubusercontent.com/42624703/107102413-0b9b6280-67e0-11eb-8af1-a06c1b15f987.png)
![PQ_CHUNK_WRITER_per_0_39](https://user-images.githubusercontent.com/42624703/107102415-0b9b6280-67e0-11eb-860b-f8ac579af9c8.png)
PARQUET READER
![PQ_READER_comp_0_9](https://user-images.githubusercontent.com/42624703/107102421-13f39d80-67e0-11eb-9bd9-5d45094a4cc8.png)
![PQ_READER_comp_10_19](https://user-images.githubusercontent.com/42624703/107102422-148c3400-67e0-11eb-93d7-d37b6f8f0346.png)
![PQ_READER_comp_20_29](https://user-images.githubusercontent.com/42624703/107102423-148c3400-67e0-11eb-9ed0-3c613311164b.png)
![PQ_READER_comp_30_39](https://user-images.githubusercontent.com/42624703/107102424-1524ca80-67e0-11eb-8773-328871b75e6f.png)
![PQ_READER_comp_40_49](https://user-images.githubusercontent.com/42624703/107102425-1524ca80-67e0-11eb-9841-dd2fae2e00e3.png)
![PQ_READER_comp_50_59](https://user-images.githubusercontent.com/42624703/107102426-1524ca80-67e0-11eb-8cb3-36cde66909c0.png)
![PQ_READER_comp_60_69](https://user-images.githubusercontent.com/42624703/107102429-15bd6100-67e0-11eb-9825-5eb65d066343.png)
![PQ_READER_comp_70_79](https://user-images.githubusercontent.com/42624703/107102430-15bd6100-67e0-11eb-9570-e3f3f4df6e0a.png)
![PQ_READER_comp_80_89](https://user-images.githubusercontent.com/42624703/107102431-15bd6100-67e0-11eb-825e-633f33713844.png)
![PQ_READER_comp_90_99](https://user-images.githubusercontent.com/42624703/107102432-1655f780-67e0-11eb-9e51-4fbca0c640fe.png)
![PQ_READER_diff_0_39](https://user-images.githubusercontent.com/42624703/107102433-1655f780-67e0-11eb-9c61-457d7bdca759.png)
![PQ_READER_diff_40_79](https://user-images.githubusercontent.com/42624703/107102434-1655f780-67e0-11eb-9471-7b071bfc8e72.png)
![PQ_READER_diff_80_119](https://user-images.githubusercontent.com/42624703/107102435-16ee8e00-67e0-11eb-83a5-5ee304fdf8b7.png)
![PQ_READER_per_0_39](https://user-images.githubusercontent.com/42624703/107102436-16ee8e00-67e0-11eb-9df2-dbe74defd858.png)
![PQ_READER_per_40_79](https://user-images.githubusercontent.com/42624703/107102438-17872480-67e0-11eb-81d0-9611b2f554c4.png)
![PQ_READER_per_80_119](https://user-images.githubusercontent.com/42624703/107102441-17872480-67e0-11eb-81c7-a30ffc3d74a5.png)
PARQUET WRITER
![PQ_WRITER_comp_0_9](https://user-images.githubusercontent.com/42624703/107102450-22da5000-67e0-11eb-8cfe-8198bdfef3b5.png)
![PQ_WRITER_comp_10_19](https://user-images.githubusercontent.com/42624703/107102451-2372e680-67e0-11eb-9036-f10cdf577e7e.png)
![PQ_WRITER_comp_20_29](https://user-images.githubusercontent.com/42624703/107102452-2372e680-67e0-11eb-966a-dd584ba24aa6.png)
![PQ_WRITER_comp_30_39](https://user-images.githubusercontent.com/42624703/107102453-240b7d00-67e0-11eb-9cd6-f2ee98eb679e.png)
![PQ_WRITER_comp_40_49](https://user-images.githubusercontent.com/42624703/107102454-240b7d00-67e0-11eb-87bd-0ed78398394b.png)
![PQ_WRITER_comp_50_59](https://user-images.githubusercontent.com/42624703/107102455-240b7d00-67e0-11eb-8769-ebf545d1f37d.png)
![PQ_WRITER_comp_60_69](https://user-images.githubusercontent.com/42624703/107102456-24a41380-67e0-11eb-82be-00729da0fad0.png)
![PQ_WRITER_comp_70_79](https://user-images.githubusercontent.com/42624703/107102457-24a41380-67e0-11eb-8117-7704b7c7b085.png)
![PQ_WRITER_comp_80_89](https://user-images.githubusercontent.com/42624703/107102458-24a41380-67e0-11eb-99de-df5b077b6b5e.png)
![PQ_WRITER_comp_90_99](https://user-images.githubusercontent.com/42624703/107102459-253caa00-67e0-11eb-9393-2f2c54021bab.png)
![PQ_WRITER_comp_100_109](https://user-images.githubusercontent.com/42624703/107102462-253caa00-67e0-11eb-9c22-d7c48b2bbb02.png)
![PQ_WRITER_comp_110_119](https://user-images.githubusercontent.com/42624703/107102464-253caa00-67e0-11eb-896d-52375e61c528.png)
![PQ_WRITER_comp_120_129](https://user-images.githubusercontent.com/42624703/107102465-25d54080-67e0-11eb-9ab7-eb37f1986c7c.png)
![PQ_WRITER_comp_130_139](https://user-images.githubusercontent.com/42624703/107102466-25d54080-67e0-11eb-8b68-9eb660a81a9b.png)
![PQ_WRITER_diff_0_39](https://user-images.githubusercontent.com/42624703/107102467-25d54080-67e0-11eb-989d-4c1994bb127b.png)
![PQ_WRITER_diff_40_79](https://user-images.githubusercontent.com/42624703/107102468-266dd700-67e0-11eb-98c1-7b6af9155cb4.png)
![PQ_WRITER_diff_80_119](https://user-images.githubusercontent.com/42624703/107102469-266dd700-67e0-11eb-921d-f7e83009c68f.png)
![PQ_WRITER_diff_120_159](https://user-images.githubusercontent.com/42624703/107102470-266dd700-67e0-11eb-8f4f-42f920d30bbc.png)
![PQ_WRITER_per_0_39](https://user-images.githubusercontent.com/42624703/107102472-27066d80-67e0-11eb-9e40-aa06098bbdae.png)
![PQ_WRITER_per_40_79](https://user-images.githubusercontent.com/42624703/107102474-27066d80-67e0-11eb-9227-aff94e67ecfc.png)
![PQ_WRITER_per_80_119](https://user-images.githubusercontent.com/42624703/107102476-279f0400-67e0-11eb-91c5-ad01f1aa09ea.png)
![PQ_WRITER_per_120_159](https://user-images.githubusercontent.com/42624703/107102477-279f0400-67e0-11eb-89ea-c9a5e113c628.png)