<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Faster Radix Sort via Virtual Memory and Write-Combining · HackerPapers discussions</title><link>https://hackerpaper.kaipfister.de/p/1008.2849/</link><description>Collected HN comments and submissions linking this paper.</description><language>en</language><lastBuildDate>Mon, 02 Nov 2026 11:16:22 GMT</lastBuildDate><atom:link href="https://hackerpaper.kaipfister.de/p/1008.2849/feed.xml" rel="self" type="application/rss+xml" /><item><title>Faster Radix Sort via Virtual Memory and Write-Combining — mentioned by janwas</title><link>https://news.ycombinator.com/item?id=36313711</link><guid isPermaLink="false">urn:hackerpapers:mention:1008.2849:36313711</guid><pubDate>Tue, 13 Jun 2023 17:35:52 GMT</pubDate><description>&lt;p&gt;&amp;gt; According to the benchmarks in the article, many are also doing better at low-cardinality data. VQSort handles low cardinality quite well. Unfortunately only a few benchmarks in the article (not including that one) were re-run after our performance bug fix. &amp;gt; it&amp;#x27;s very strange to compare to std::sort which does make some attempt to be adaptive. We chose std::sort mainly because it seems to be widely used. &amp;gt; But we all know why you&amp;#x27;re doing that. I suppose you&amp;#x27;ll keep your fingers in your ears regarding 32-bit radix sort huh, I&amp;#x27;m curious what&amp;#x27;s the background or context for this remark? FYI…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1008.2849/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.DS</category></item><item><title>Faster Radix Sort via Virtual Memory and Write-Combining — mentioned by janwas</title><link>https://news.ycombinator.com/item?id=31628405</link><guid isPermaLink="false">urn:hackerpapers:mention:1008.2849:31628405</guid><pubDate>Sun, 05 Jun 2022 05:53:43 GMT</pubDate><description>&lt;p&gt;Actually we also support floating-point (32/64 bit, possibly even 16). I&amp;#x27;ve previously also looked into radix sort: https://arxiv.org/abs/1008.2849 Radix sort may actually be faster if you know that only a few bytes are guaranteed to distinguish keys, but that&amp;#x27;s difficult to guarantee/assume at the library level.&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1008.2849/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.DS</category></item><item><title>Faster Radix Sort via Virtual Memory and Write-Combining — mentioned by janwas</title><link>https://news.ycombinator.com/item?id=31617323</link><guid isPermaLink="false">urn:hackerpapers:mention:1008.2849:31617323</guid><pubDate>Sat, 04 Jun 2022 05:37:06 GMT</pubDate><description>&lt;p&gt;:) Are you thinking of ips4o (sample sort)? That&amp;#x27;s about 2-3x std::sort. There&amp;#x27;s also a pending patch to std::sort that replaces it with BlockQuicksort which would narrow that gap. We integrate vqsort into ips4o, calling it once subarrays fit in L2. That speeds up ips4o by 2.9x (single thread) and 1.6 (parallel - bandwidth limited). More details in the paper. I previously also worked on radix sort: https://arxiv.org/abs/1008.2849 Interestingly, that 12 year old result on dual-socket/8 cores is only about twice as fast as a single AVX-512 core today.&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1008.2849/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.DS</category></item><item><title>Faster Radix Sort via Virtual Memory and Write-Combining — mentioned by frankmcsherry</title><link>https://news.ycombinator.com/item?id=10090266</link><guid isPermaLink="false">urn:hackerpapers:mention:1008.2849:10090266</guid><pubDate>Thu, 20 Aug 2015 06:30:01 GMT</pubDate><description>&lt;p&gt;There is this cool related work [0] that I wanted to talk about, but couldn&amp;#x27;t get to show an improvement on my laptop, which uses software write combining to mitigate cache limitations. In particular, they are worried about the fact that 8-way associative L1 doesn&amp;#x27;t like to hold 256 specific cache lines, so they manually buffer writes into 16k (= 256 cache lines) contiguous bytes, using a non-temporal write when a cache line is full. They report hitting 88% of their system&amp;#x27;s peak memory bandwidth. You could do the same thing (I think) to avoid TLB limitations, manually staging everything in a…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1008.2849/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.DS</category></item></channel></rss>
