你可能不知道的 ROCm

ROCm 是什麼? ROCm 全名 Radeon Open Compute Project,是 AMD 所主導的開放加速運算生態,透過 HIP 語言來撰寫 GPU 程式。 ROCm 最主要的目的是對標 NVIDIA CUDA 並提供開放的生態、同價位下更高規格,或是同規格更便宜的產品,透過更高的可自訂性和性價比讓不論是國家計劃還是大小企業甚至個人使用者都可能成為客戶。 ROCm 的現狀 許多國家級超級電腦都使用 AMD Instinct 系列 GPU 來建,例如美國的 El Capitan 和澳洲的 Pawsey Supercomputing Research Centre,近期也收到許多超大訂單如 Meta 的 1GW 採購案。 在 2025 年 6 月最新的 TOP500 榜單,其中排名第一的 El Capitan 和第二的 Frontier 都是以 AMD Instinct GPU 加速,跑在 ROCm 生態上。 我和 ROCm 這篇文大概可以算是整個大三生活的重心統整了,我幾乎投入了過半時間研究 ROCm 從頂層策略到底層行爲。 我在自己的 RX 9070 XT 上透過 ROCm Docker container 成功跑起 ComfyUI,平常跑跑 LLM inference 和一些科學運算也都很穩。 ...

May 23, 2026

啟發式最佳化演算法帶給我的成長

:::warning 這篇文涉及到的觀念比較複雜,建議沒有經驗的讀者可以使用維基百科輔助理解這篇文的內容。 ::: :::warning 筆者對於 P 與 NP 問題的詳細定義可能存在些許誤解或理解不夠全面,因此如果文中出現錯誤麻煩告知,會儘快修正。 ::: 起因 上了大學之後因為對自己的專業技能抱有期待能夠發揮在一些地方, 因此我很主動在詢問學校的資源, 教授剛好藉機向我介紹實驗室這個地方, 於是在我好奇心的驅使下在大一還是個新生時就進入了學校實驗室, 後來從教授口中得知實驗室有在做最佳化演算法的實驗, 目的是改善現有的演算法, 並且從演算法的角度出發去找到更高效率的演算法, 實驗室已經有實現出 Python 版本, 而我負責改寫為 C++ 並且提升效能。 也算是幫忙寫 code 順便賺點零用錢。 P=NP 問題與時間複雜度 關於最佳化演算法的出現首先要提起 P=NP 問題, 這是著名的千禧年難題之一, 在介紹這個問題前, 我先簡單解釋什麼是「時間複雜度」, 時間複雜度用於表示一個演算法需要花多少時間解決問題, 通常人們習慣用大O表示法來表達時間複雜度, 並以 n 作為問題大小, 例如遍歷一個陣列的時間複雜度為 O(n), 表示使用問題大小的時間(操作次數)可以解決此問題。 P 與 NP P 代表的是多項式時間, 也就是在次方項為常數的時間複雜度, 因為次方向如果為 n 的話會導致花費的時間隨著問題大小成指數成長, 也就是 NP, 因此問題只要變大很快就會變得無法計算, 因此需要隨著問題大小讓時間線性成長的演算法來解決 NP 問題。 啟發式與最佳化演算法 啟發式演算法是藉由學習或模仿自然界已有的可行方案例如蟻群、狼群尋找食物的方式之類的行為來設計一套演算法, 也有藉由退火啟發的演算法, 都是想要藉由演化或其他自然界的力量來處理問題。 最佳化演算法是專為一系列的 NP 問題而誕生。 區域最佳解與全域最佳解 一個大的 NP 問題中在我們使用最佳化演算法時會遇到一個重要的問題, 要如何調配區域搜尋和全域搜尋的比例, 若區域搜尋過多會停留在區域最佳解, 過少則會導致解往更好方向的收斂速度過慢, 從而浪費時間。 ...

December 19, 2023

專題作品:yush

高中三年級的專題我做出了 yush, 算是一個輕量化的 shell, 可以執行在不同平台上, 並且擁有基本的指令功能, 同時這專題也是我這學期學校成績拿最高的一個科目, 以下附上 Github 連結: yush :::tip 以下是我張貼在社群媒體上的原文。 ::: (已編輯) 我用 C++ 寫了一個 shell,並且我打算稱它為 yush。 yush 目前是一個成長中的 shell 專案,作為我個人第一個較大的 C++ 專案,原本設計是跨平台,但因涉及底層許多操作邏輯不同因此暫時取消了 Windows 的支援,僅保留了 Unix-like 的 MacOS 和 Linux。 另外,yush 其實還沒完成,程式還欠缺部分功能,如果有人參與開發或是告訴我哪裡能改進我會很感謝你們的。 詳細內容請看 Github 連結:https://github.com/Young-TW/yush

October 12, 2023

個人作品:Game of life

前幾天看到了以前看過的一個酷東西叫做康威生命遊戲, 一時興起的我打算用 C++ 重現這個遊戲, 於是我花了兩天時間去寫這個遊戲, 可能是有了 yush 的開發經驗, 讓我一路上輕輕鬆鬆就實現了這個遊戲, 但目前還沒有真正的圖形, 只有文字的輸出, 之後可能會再加入 OpenGL 來做彩現, 以下附上 Github 連結: game of life

February 11, 2023