[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-scale-turns-cuda-code-into-portable-gpu-builds-zh":3,"article-related-scale-turns-cuda-code-into-portable-gpu-builds-zh":30,"series-tools-2151fdfb-10ca-419c-b4f6-ce36d6ff435f":75},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"2151fdfb-10ca-419c-b4f6-ce36d6ff435f","scale-turns-cuda-code-into-portable-gpu-builds-zh","SCALE 讓 CUDA 變可攜 GPU 編譯","\u003Cp data-speakable=\"summary\">以前 \u003Ca href=\"\u002Ftag\u002Fcuda\">CUDA\u003C\u002Fa> 卡死在 \u003Ca href=\"\u002Ftag\u002Fnvidia\">Nvidia\u003C\u002Fa>，現在 SCALE 想把同一份程式帶去別家 \u003Ca href=\"\u002Ftag\u002Fgpu\">GPU\u003C\u002Fa>。\u003C\u002Fp>\u003Cp>我在 CUDA 裡泡很久了，真的很久。程式能跑、kernel 也調過、團隊也把一堆血汗塞進去，然後總有人丟一句：這套能不能也跑 AMD？每次聽到我都想翻白眼，因為那通常不是一個技術問題，是一整包預算、時程、相容性債一起冒出來。我看過太多團隊一路繳 Nvidia 稅，因為「搬家」聽起來像第二個專案，沒人想付。\u003C\u002Fp>\u003Cp>所以我看到 Spectral Compute 時，第一反應不是「哇好棒」，我對 GPU 工具鏈的宣傳早就有免疫力了。真正讓我停下來的是它打的位置很準：編譯器。原始拆解文在 \u003Ca href=\"https:\u002F\u002Ftechplanet.today\u002Fpost\u002Fbreaking-nvidias-cuda-moat-how-spectral-compute-is-democratizing-gpu-computing\">TechPlanet\u003C\u002Fa>，它把 SCALE 描成 NVCC 的 drop-in replacement，這句話如果是真的，影響的就不只是一個工具，而是整個 CUDA 綁定的思考方式。\u003C\u002Fp>\u003Ch2>CUDA 綁定先傷到預算，不是先傷到技術\u003C\u002Fh2>\u003Cblockquote>Nvidia's CUDA programming language has become the de facto standard for GPU computing, commanding approximately 80% of the market for parallel computing development tools.\u003C\u002Fblockquote>\u003Cp>白話一點就是：當一套工具\u003Ca href=\"\u002Fnews\u002Fgpgpu-graphics-chips-general-compute-engines-zh\">變成\u003C\u002Fa>預設值，硬體廠就開始有議價權。你如果把 codebase 綁死在 CUDA，上線時你買的不只是編譯器，你還一起買了 Nvidia 的定價、路線圖和供貨節奏。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784210602836-wqlf.png\" alt=\"SCALE 讓 CUDA 變可攜 GPU 編譯\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我看過研究團隊和新創都踩過這坑。他們一開始根本不是想做 vendor lock-in，只是想\u003Ca href=\"\u002Fnews\u002Fai-companies-london-office-demand-zh\">先把\u003C\u002Fa>結果做出來。CUDA 通常就是最快的路。問題是三年後，老闆想分散硬體風險，工程團隊才發現程式和手感都已經焊死在同一邊。\u003C\u002Fp>\u003Cp>TechPlanet 提到 CUDA 大概吃下平行運算開發工具市場的 80%。我不會把這數字當天條，但方向很清楚：CUDA 是預設，預設會黏人，黏人最後就變成廠商手上的槓桿。\u003C\u002Fp>\u003Cp>實操上，我會直接把可攜性拉進成本表。你在算雲端費用、模型品質、GPU 數量時，就該一起算能不能搬。如果搬不走，你其實沒有採購選項。\u003C\u002Fp>\u003Cul>\u003Cli>先盤點哪些 kernel、library、build step 是 CUDA 專屬。\u003C\u002Fli>\u003Cli>標出一旦重寫會很痛的區塊。\u003C\u002Fli>\u003Cli>把「繼續綁死」和「做可攜化」的成本放同一張表。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>SCALE 會被注意，是因為它碰的是 NVCC，不是表面語法\u003C\u002Fh2>\u003Cp>Spectral Compute 成立於 2018 年，做出 \u003Ca href=\"https:\u002F\u002Fscale-lang.com\u002F\">SCALE\u003C\u002Fa> 這套編譯器，底層用了 \u003Ca href=\"https:\u002F\u002Fclang.llvm.org\u002F\">Clang\u003C\u002Fa> 和 \u003Ca href=\"https:\u002F\u002Fllvm.org\u002F\">LLVM\u003C\u002Fa>，目標是變成 \u003Ca href=\"https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-toolkit\">NVCC\u003C\u002Fa> 的替代品。這點很重要。它不是只翻幾個 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> 就說自己支援 CUDA，而是直接重做編譯路徑。\u003C\u002Fp>\u003Cp>也就是說，它不是站在外面做轉接頭，而是直接進到 compile time，去碰那些真正決定效能的地方。這比 source-to-source converter 難很多，但也比較像真的在解問題。因為 GPU 程式最貴的從來不是語法長什麼樣，是你能不能保住原本的優化結果。\u003C\u002Fp>\u003Cp>我以前踩過一堆「看起來很美」的工具。簡報很順，demo 很穩，結果一碰到 template、device \u003Ca href=\"\u002Fnews\u002Fkimi-api-quickstart-k27-code-highspeed-zh\">code\u003C\u002Fa>，或是那種被資深工程師調到骨子裡的 kernel，整個就露餡。SCALE 如果真能把實際 CUDA code 編過去，而且行為夠接近 NVCC，那不是小修小補，是工作流直接換軌。\u003C\u002Fp>\u003Cp>實操寫法很簡單：評估可攜工具時，不要問它懂不懂 CUDA。你要問的是，它能不能真的插進 build pipeline，能不能保 correctness，效能有沒有維持在可接受範圍。碰不到 build 的工具，基本就是 demo。\u003C\u002Fp>\u003Cul>\u003Cli>先看能不能接進你現有 CI。\u003C\u002Fli>\u003Cli>確認它吃不吃你現在的 compiler flags 和 build system。\u003C\u002Fli>\u003Cli>不要只看 runtime，compile output 也要驗。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>LLVM 路線比翻譯戲法更像正解\u003C\u002Fh2>\u003Cp>TechPlanet 把 SCALE 描成 clean-room re-implementation，而不是 translation layer。這個差別很大。翻譯層通常只是把原本的抽象包一層，再祈禱相容性不要炸。重做編譯器，才有機會針對目標硬體重新安排最佳化，不用硬扛 CUDA 原本的包袱。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784210603224-c8ak.png\" alt=\"SCALE 讓 CUDA 變可攜 GPU 編譯\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>翻成白話就是：SCALE 想少背一點 CUDA 的歷史債。文章也順手比了 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FROCm\u002FHIPIFY\">HIPIFY\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwww.intel.com\u002Fcontent\u002Fwww\u002Fus\u002Fen\u002Fdeveloper\u002Ftools\u002Foneapi\u002Fconverter.html\">SYCLomatic\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvosen\u002FZLUDA\">ZLUDA\u003C\u002Fa>，這些工具各自解一塊，但很少有人能把整條路都處理好。翻譯可以讓你先動起來，卻不保證你落地後還跑得漂亮。\u003C\u002Fp>\u003Cp>我對「幾乎可攜」這種東西一直很警覺，因為最後 10% 通常才是工程本體。那裡面藏著奇怪的 data layout、手調 kernel、沒人寫文件的 library call、只有某一家硬體才成立的假設。這也是我比較願意相信 compiler-based approach 的原因，至少它有機會真的碰到執行模型本身。\u003C\u002Fp>\u003Cp>實操寫法：你在比 GPU 可攜策略時，直接排一個順序，看它保留了多少原始執行模型、又重編了多少東西。越依賴 runtime patching 或 binary trickery 的方案，後面通常越容易補票。\u003C\u002Fp>\u003Ch2>正確性先過，漂亮 benchmark 沒什麼用\u003C\u002Fh2>\u003Cp>文章提到 Spectral 會在重新編譯後做數值驗證，只有輸出跟 NVCC 版本對得上，才算成功。這做法我喜歡，因為它很無聊，而無聊在 compiler 工作裡通常是好事。速度再快，答案錯了也白搭。\u003C\u002Fp>\u003Cp>翻譯一下就是：SCALE 不只是在追 \u003Ca href=\"\u002Ftag\u002Fbenchmark\">benchmark\u003C\u002Fa> 截圖，它是在證明程式算出來的東西還是一樣。這聽起來理所當然，但你真的被「優化」工具陰過一次，就知道 edge case 被偷偷改掉有多煩。我看過團隊花好幾週 debug，最後發現不是演算法有問題，是 portability layer 在搞鬼。\u003C\u002Fp>\u003Cp>GPU code 還有一個麻煩：很多錯誤不容易第一時間看出來。模型還能訓、模擬還能跑、數字看起來也合理。這種「錯但看起來對」最陰。比起一個只會喊快的工具，我寧可它保守一點，至少別讓我懷疑人生。\u003C\u002Fp>\u003Cp>實操寫法：先做驗證 harness，再談遷移。把 NVCC 的已知正確輸出存起來，拿替代工具鏈去比，測代表性輸入，不要只測 happy path。\u003C\u002Fp>\u003Cul>\u003Cli>先抓幾個真實 workload 當 baseline。\u003C\u002Fli>\u003Cli>比數值容忍度，不要只比字串是否一模一樣。\u003C\u002Fli>\u003Cli>邊界案例要測，別只看 benchmark dataset。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>CUDA 生態不是只有編譯器，還有一整堆庫\u003C\u002Fh2>\u003Cp>CUDA 不是一門語言而已，它是一整包工具鏈和假設。文章點到 \u003Ca href=\"https:\u002F\u002Fdeveloper.nvidia.com\u002Fcudnn\">cuDNN\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdeveloper.nvidia.com\u002Fcutensor\">cuTENSOR\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdeveloper.nvidia.com\u002Frapids\">cuDF\u003C\u002Fa>，這才是最麻煩的地方。編譯器可以先幫你進門，但裡面還有一堆 CUDA 專屬依賴等著你拆。\u003C\u002Fp>\u003Cp>也就是說，可攜性是分層的。第一層是能不能編過。第二層是 library 有沒有覆蓋。第三層才是換到別家硬體後，效能會不會直接塌掉。很多人講「我們支援 CUDA」的時候，根本沒說清楚到底支援到哪一層。\u003C\u002Fp>\u003Cp>我之前做過一個案子，kernel 轉移其實不算最痛，真正拖死進度的是 library migration。團隊可以接受換編譯器，但很難接受一串缺功能的替代庫，尤其那些庫就在訓練或推論路徑中間。SCALE 的價值要成立，不能只看 compiler，還要看周邊能吃下多少。\u003C\u002Fp>\u003Cp>實操寫法：先盤點你 runtime 路徑上用了哪些 CUDA library，再碰編譯器。若風險大多卡在 cuDNN 這類東西，光換 compiler 沒用，你需要的是整張遷移地圖。\u003C\u002Fp>\u003Cul>\u003Cli>列出 runtime path 裡所有 CUDA library。\u003C\u002Fli>\u003Cli>把核心 compute 和 helper library 分開看。\u003C\u002Fli>\u003Cli>確認目標硬體上有哪些可用替代品。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>中立工具會改變買硬體的方式\u003C\u002Fh2>\u003Cp>文章提到 Spectral 一邊進 \u003Ca href=\"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fstartups\u002Finception\u002F\">Nvidia Inception\u003C\u002Fa>，一邊又想對 AMD 保持友善。聽起來怪，但你想想買家怎麼決定就懂了。能讓 CUDA 變可攜的工具，不會把 CUDA 搞死，它只是把「我一旦選了就不能回頭」這種恐懼削掉。\u003C\u002Fp>\u003Cp>白話就是：開發者會更敢用 CUDA，因為他知道自己不是永遠被鎖住。這很微妙，但真的有差。vendor neutrality 不只是態度問題，它會影響整個生態的成交速度。語言變可攜，語言本身就更容易被採用。\u003C\u002Fp>\u003Cp>我在其他基礎設施也看過一樣的事。團隊一旦知道有退出路線，採用速度就會快很多。也許他們最後根本不會走，但「可以走」這件事本身就會改變討論方式。採購比較好談，架構審查也沒那麼像在打仗。\u003C\u002Fp>\u003Cp>實操寫法：如果你是平台團隊，把可攜性納入 vendor 評估。目標不是反 Nvidia，也不是反 AMD，而是讓硬體選擇回到效能和成本，而不是被單一廠商綁架。\u003C\u002Fp>\u003Ch2>編譯器控制權，就是控制權本身\u003C\u002Fh2>\u003Cp>我最後一直卡在這點。Spectral Compute 沒有去包一層更花俏的抽象，而是直接打編譯器。因為性能、相容性、控制權，最後都會在這裡交會。就算你根本不打算直接用 SCALE，這種思路也值得抄。\u003C\u002Fp>\u003Cp>翻成白話就是：誰掌握編譯路徑，誰就掌握很多使用者體驗。編譯器如果能乾淨地對多種加速器輸出，硬體廠最強的 lock-in 點就會鬆一點。反過來說，如果編譯器不行，那所有「替代方案」都只是在旁邊多收一筆稅。\u003C\u002Fp>\u003Cp>我不會裝作這件事已經被解完。文章自己也講得很清楚：CUDA 生態很大，採用很黏，library 支援還在補。但我寧可看到一條認真的 compiler 路線，也不要再看一個碰到 production code 就倒的 portability layer。\u003C\u002Fp>\u003Cp>實操寫法：你在看 GPU 基礎設施時，直接問三件事：誰管編譯器、誰管 library、誰管效能調校。這三個如果都在同一家手上，你買的不是平台，你是在租使用權。\u003C\u002Fp>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># GPU 可攜性評估模板\n\n## 目標\n我想降低 CUDA 綁定，但不想整個 codebase 重寫。\n\n## 現況\n- 主要加速器廠商：\n- CUDA 版本：\n- Build system：\n- 關鍵 kernels：\n- 目前用到的 CUDA libraries：\n  - cuDNN\n  - cuTENSOR\n  - cuDF\n  - 其他：\n\n## 目標平台\n- 目標硬體：\n- 目標 compiler \u002F toolchain：\n- 效能目標：\n- 正確性容忍度：\n\n## 評估清單\n### Compiler 相容性\n- 能不能在 CI 裡直接替換 NVCC？\n- 能不能吃我現在的 flags 和 build layout？\n- 能不能編過真實 production kernels，不只是 toy example？\n\n### 正確性\n- 輸出能不能在容忍範圍內對上 NVCC baseline？\n- 邊界案例有沒有測？\n- 失敗能不能重現？\n\n### 效能\n- 在目標硬體上 runtime 是否可接受？\n- 有沒有 kernel-level regression？\n- 還保不保有 tuning 空間？\n\n### 生態覆蓋\n- 哪些 CUDA libraries 有支援？\n- 哪些缺？\n- 需要哪些 workaround？\n\n### 商業面\n- 遷移成本多少？\n- 會打開哪些硬體選項？\n- 會拿掉哪些 vendor 風險？\n\n## 決策規則\n只有在以下條件都成立時才導入：\n1. 能編過代表性的 production code，\n2. 正確性測試過關，\n3. 效能低於門檻的幅度可接受，\n4. 我實際依賴的 libraries 有覆蓋，\n5. 能讓財務和採購看懂 vendor 風險有下降。\n\n## 推進方式\n- Phase 1：先 benchmark 一個 kernel\n- Phase 2：先搬一個小服務\n- Phase 3：再擴到完整 workload\n- Phase 4：把不同 vendor 放到同一張表比\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>這段就是我會真的丟給團隊的版本。不是口號，也不是保證，只是一個判斷可攜性到底是真還是假、是不是在唬人的方法。SCALE 或其他工具如果真能進你的 stack，就用這份模板先把自己騙不過去。\u003C\u002Fp>\u003Cp>原始拆解來源是 Kelly 的 TechPlanet 文章 \u003Ca href=\"https:\u002F\u002Ftechplanet.today\u002Fpost\u002Fbreaking-nvidias-cuda-moat-how-spectral-compute-is-democratizing-gpu-computing\">Breaking Nvidia's CUDA Moat: How Spectral Compute is Democratizing GPU Computing\u003C\u002Fa>。我這篇的解讀、結構和可抄模板是我自己整理的；事實點和引用觀點主要來自這篇文章，以及文中連到的官方網站與 repo。\u003C\u002Fp>","我拆 Spectral Compute 的 SCALE 編譯器，講它怎麼把 CUDA 專案拉出單一 GPU 綁定，還順手給你一份可直接套用的評估模板。","techplanet.today","https:\u002F\u002Ftechplanet.today\u002Fpost\u002Fbreaking-nvidias-cuda-moat-how-spectral-compute-is-democratizing-gpu-computing",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784210602836-wqlf.png","tools","zh","72bb2eee-5f4c-457f-acb0-1e9017666cd9",[17,18,19,20,21],"CUDA","GPU compiler","LLVM","NVCC","portability",[23,24,25],"SCALE 的重點在編譯鏈，不只是語法轉譯。","GPU 可攜性要同時看正確性、效能和生態系覆蓋。","真正能抄走的是一份可落地的評估與遷移模板。",0,"2026-07-16T14:02:55.366575+00:00","2026-07-16T14:02:55.352+00:00","c4a94dfa-7c3f-451f-8860-30a60669939a",{"tags":31,"relatedLang":34,"relatedPosts":38},[32],{"name":17,"slug":33},"cuda",{"id":15,"slug":35,"title":36,"language":37},"scale-turns-cuda-code-into-portable-gpu-builds-en","SCALE turns CUDA code into portable GPU builds","en",[39,45,51,57,63,69],{"id":40,"slug":41,"title":42,"cover_image":43,"image_url":43,"created_at":44,"category":13},"194cb6f2-9263-4fe4-93f5-20f44ca1bdeb","2027-ai-ml-internship-jobs-daily-zh","2027 AI\u002FML 實習職缺每天更新","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784192579088-va17.png","2026-07-16T09:02:31.951176+00:00",{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":13},"a4781236-56a1-4b87-b223-df328fd3a0e9","mimo-code-free-trial-not-production-ready-zh","MiMo Code 免費不等於生產力：先試用，再決定是否上車","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784169179259-qkyr.png","2026-07-16T02:32:25.375192+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"44eead66-c13e-48e9-919e-2dede91d44aa","ollama-raises-65m-14-people-8-9m-users-zh","Ollama 拿下 6500 萬美元，14 人撐起 890 萬用戶","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784167385501-huif.png","2026-07-16T02:02:29.250726+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"0c51ae94-4e52-4b2b-81ab-436aed7b7b85","databricks-query-foundation-models-guide-zh","Databricks 讓你用同一套方式查模型","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784144051476-1d82.png","2026-07-15T19:33:44.882507+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"aeb298e5-cfc1-40e4-beb9-2b083a863465","sglang-inference-is-the-product-zh","SGLang 會贏，因為推理才是產品層","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784140376310-f1dj.png","2026-07-15T18:32:19.070176+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"10ad3ee2-3f02-479a-8c97-afa911c02a28","redmi-note-17-battery-camera-price-breakdown-zh","Redmi Note 17 把電量變主角","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784138636187-yzxd.png","2026-07-15T18:03:18.75152+00:00",[76,81,86,91,96,101,106,111,116,121],{"id":77,"slug":78,"title":79,"created_at":80},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":82,"slug":83,"title":84,"created_at":85},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":87,"slug":88,"title":89,"created_at":90},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]