2026/04/01

20260401 愚人節操自己的CPU

當初買 13900K CPU 的時候是號稱消費級的最高選擇, 從來很少機會可以操它到usage全滿; 開發指標我一直的主張是最好能自適應(adaptive), 而不是去最佳化找參數; 最近在AI的輔助下, 搞了不少 Python 的新鮮玩意兒, 趁這個機會用最佳化把這顆CPU操到滿百20分鐘左右, 也算不枉它狂暴的能力了

這是一套經過嚴格壓力測試、物理隔離、且參數最佳化的戰鬥機器:

CPU 核心:P-Cores @ 5.5GHz (All Core, E-Cores Disabled, HT Disabled) 。

Ring (快取):4.9GHz (穩定甜蜜點)。

電壓設定:Vcore 1.33V + VccSA 1.28V (兼顧效能與 4 DIMMs 穩定性)。

記憶體:DDR4-3200 64GB (4x16GB) @ 1.35V 

軟體架構:

Excel/DDE 鎖定 Core 2, 3 。

eLeader/Python 鎖定 Core 4, 5 (物理中心,干擾最小) 。

XQ 報價 鎖定 Core 6, 7 。

---

參數最佳化引擎 opt.py 完工報告

我們已經成功建立並整合了高效能的參數掃描引擎 opt.py,並且對舊有的 bt.py 做了完全向後相容的無損重構。

特色與技術亮點

TIP

隨機採樣 (Random Search) 理論基礎 當參數可能組合逼近數十萬種時,隨機抽選 10,000 組就能有 95% 以上的機率抓到全域前 1% 的頂尖參數,是一種極具效率且主流的分析手法。

  1. 零延遲快取池 (Zero-latency RAM Cache):在多核心切換運算時,最耗時的就是「重新讀取 20 萬筆 CSV 並做 K 棒重採樣」。我們運用了 initializer 機制,在每個 CPU 核心啟動的那一瞬間,就偷偷先把 1m2m3m5m 的 K 棒完全載入常駐記憶體,這讓每次參數測試的讀檔前置時間趨近於 0。
  2. 免改寫注入技術 (Dependency Injection):我們稍微優化了 bt.py 的參數介面,讓 opt.py 能藉由假造一個名為 DynamicConfig 的超輕量物件,直接覆蓋 config.py 中的參數並灌入 bt.py 中。這樣完全不用重寫幾百行的回測邏輯。
  3. 無縫多核心運算 (Multiprocessing):自動偵測作業系統的 CPU 總核心數,並切出 N - 1 個核心建立運算池 (Pool),火力全開同時對 Numba C 引擎進行壓力測試。
  4. 輸出淨化 (Stdout Silence):我們精準地運用了 with open(os.devnull, 'w') 攔截了 bt.py 底層的 print 輸出,防止多核心同時輸出把你的畫面洗掉,只留下非常乾淨漂亮的動態進度條。













0 comments :

張貼留言

.

.
Related Posts Plugin for WordPress, Blogger...