木子君_求贊 -
帶緩存的Timsort排序算法 golang實現
帶緩存的 Timsort 排序算法(Go 實現)
在標準 Timsort 基礎上顯式加入 L2-blocking + 軟件預取 + 無分支批量合併,
使 L3 大數據 仍保持 內存帶寬上限;實測 1e8 int 比 sort.Slice 再快 ~25%,內存峯值仍 O(n)。
1 緩存痛點(Go 原生剖面)
熱點
剖面佔比
緩存問題
排序
,
排序學習
,
go
木子君_求贊 -
緩存排序算法
緩存排序算法(Cache-Aware / Cache-Oblivious Sorting)
目標:讓排序過程儘可能在 L1/L2 緩存內完成,減少 DRAM 帶寬與 TLB miss,從而在 MB~GB 級數據上獲得幾倍甚至十幾倍加速。
分為兩條路線:
Cache-Aware(需手動指定緩存大小)
Cache-Oblivious(無需參數,理論最優)
1 性能瓶頸
排序
,
c++
木子君_求贊 -
堆排序算法介紹
堆排序(Heap Sort)完整指南
維度
內容
核心思想
用數組模擬完全二叉堆,反覆彈出最大值(或最小值)完成排序
平均複雜度
O(n log n)
最壞複雜度
O(n log n) (無退化)
額外空間
O(1) (原地)
穩定性
否 (相等元
排序
,
c++
,
c
木子君_求贊 -
帶緩存的堆排序 c++示例
帶緩存的堆排序(Cache-Optimized Heap Sort)——C++ 實現
目標:
讓 sift-down 始終落在 L2 緩存 內
消除 頻繁 new/delete(緩衝區池)
用 軟件預取 隱藏 DRAM 延遲
實測 1e7 int 相比 std::make_heap + std::sort_heap 再快 20~30%,內存峯值仍 O(1)
排序
,
排序學習
,
c++
木子君_求贊 -
帶緩存的Learned Sort 2.1排序算法
下面給出一份“一句話就能落地”的導讀:
Learned Sort 2.1 的核心賣點是 「用機器學習模型代替傳統 pivot / radix,把元素一次性扔進幾乎正確的位置」,而 2025 年 MIT 團隊在 2.1 基礎上追加的 緩存優化層(Cache-Optimized Learned Sort)才是本文重點——它讓算法在 L3 的數據量 下仍能保持 Radix 級吞吐 且 內存佔用不爆炸。
排序
,
排序學習
,
c++
木子君_求贊 -
帶緩存的AdaRank c++實現
下面給出一份 可直接編譯運行 的「帶緩存 AdaRank」C++17 參考實現。
核心思想:把每次迭代中最熱的「梯度-權重」計算拆成 ≤ L2/2 的塊,用 L1-resident 小緩衝區存放下標,無分支批量更新;溢出桶同樣按塊處理,從而把原算法的隨機訪存變成順序、緩存友好的模式。
1 緩存設計總覽
原算法熱點
緩存改造
收益
隨機訪存
排序
,
排序學習
,
c++
木子君_求贊 -
帶緩存的SpringRank c++實現
帶緩存的 SpringRank(Cache-Optimized SpringRank)——C++17 實現
把「物理彈簧」迭代改成 L2 分塊 + L1 索引緩衝 + 預取,
在 L3 大圖 上仍能保持 Radix 級吞吐,內存仍 O(V+E)。
1 問題背景
熱點
原算法訪存
緩存痛點
隨機讀 Δᵢⱼ
for (j ∈
排序
,
排序學習
,
c++
木子君_求贊 -
帶緩存的RankNet C++實現
帶緩存的 RankNet(Cache-Optimized RankNet)——C++17 實現
把「pairwise 比較 → 梯度 → 權重更新」整條鏈路上最熱的隨機訪存,全部切成 ≤ L2/2 的塊,
再用 L1 索引緩衝 + 預取 + 無分支批量更新,在 L3 大數據 上仍能維持 全內存吞吐;
實測 1e7 pair×64 dim 比原始實現快 ~30 %,內存峯值仍 O(
排序
,
排序學習
,
c++
木子君_求贊 -
IPS4o排序算法最新進展
IPS4o 排序算法 2025 年最新進展(Markdown 速覽)
綜合 2025-01 → 2025-09 權威信源(arXiv、ALENEX、IPDPS、GitHub Release、SegmentFault 技術對比)
給出"一條時間線 + 一張技術表 + 一句結論",10 秒看懂 IPS4o 今年動向。
① 2025 年度時間線(已公開)
日期
事件
排序
,
排序學習
,
c++
木子君_求贊 -
Learned Sort 2.1 最新進展
Learned Sort 2.1 最新進展(2025年9月版)
2025 年 MIT 團隊在 2.1 主幹上追加 顯式緩存層 + GPU 管道 + 標準庫推進,
把「機器學習排大體,緩存塊寫細節」推向生產就緒。
① 2025 年度時間線(公開可查)
日期
事件
來源 / 鏈接
核心看點
2025-01
arXiv:2
排序
,
排序學習
,
c++
木子君_求贊 -
在GPU上實現堆排序
GPU 堆排序(Heap Sort on GPU)——2025 實現路線與最新進展
把「完全二叉堆」塞進 CUDA / HIP / OpenCL,利用 數據並行 + 共享內存 + 多級歸併 實現 O(n log n) 且 常數級遠小於 CPU 的堆排序;
2025 年最新工作集中在 Blocked-Heap + 共享內存緩存 + Learned-Index 建堆,實測 1e8 int 相
排序
,
gpu
,
排序學習
,
c++