kstoko02 (陳沁妤)
簡介
- 國立成功大學 人工智慧科技碩士學位學程 116 級
- GitHub:
kstoko02 - HackMD:
winterchen
2026 Linux 核心設計 春季班 自我評量
成果發表和貢獻
2分。
- 2026/07/15:
- 頁面:Linux 核心設計: 不只是執行單元的 process
- 修正:用詞不一致 - 身份 / 身分,參考教育部規範用字,分身,指個人的出身、職業、資格或社會地位等。已將文章統一為「身分」。
- 2026/07/15:
- 頁面:Linux 核心設計: 淺談同步機制
- 修正:用詞錯誤,將「另闢蹊蹺」改為正確成語「另闢蹊徑」,參考教育部規範用字,另闢蹊徑,指另外開闢一條路;蹊蹺,指怪異而違背常情。
作業/隨堂測驗
7分。
期末專案
9分。
使用 perf 對 TinyGL 進行效能分析,加入 -O3 -march=native 編譯優化後,透過 perf stat 與 perf annotate 找出六個主要效能熱點函式(glopVertex、光柵化函式、clampf、gl_shade_vertex、glopMaterial、glopCallList),並針對每個熱點做了組合語言層級的根因分析,歸納出三類問題:記憶體存取模式不佳(cache locality)、小函式呼叫開銷過高、以及未利用 SIMD 向量化。
這學期完成的是診斷階段,暑假將針對這些問題進行實際優化並重新量測效能改善幅度。
交流提問
與授課教師的互動
9分。
1 對 1 討論
- 2 次下課後實體討論
- 5/12 下課後找老師討論期末專案題目,並確定以 TinyGL 為主題,找出效能瓶頸並進行改進,同時以科學化方法量化改進成效。
- 6/23 下課後找老師討論,第一次測試已使用 perf 量出 cache miss 數據,但只針對單一場景進行量測。老師提醒不同的場景可能造成截然不同的 cache miss 行為,回去後針對靜止和轉動兩種場景以及其他不同場景分別測了 cache miss ,並記錄在期末專案中。
課堂問答次數
所見所聞所感
10分。
看完〈因為自動飲料機而延畢的那一年〉這篇文章後,感觸很深。因為我現在做的期末專題,也是一個過去從未接觸過的領域。現今 AI 技術過於強大,加上越來越多人轉行投入資訊業,科技領域的競爭日益激烈,這讓我對未來的看法和大學剛入學時已經完全不同。資訊這個領域太廣了,正因為看清了現在的局勢,我決定要確立一個明確的方向,好好深耕下去。過去曾做過與圖像相關的期末專題,讓我覺得可以朝這個方向繼續走下去。在提出這次期末專題之前,我花了兩週時間自學 3D render 的原理,參考了 tinyrender 這份教學。我發現這和我過去做過的東西完全不同,是一套全新的概念,對我來說是個不小的挑戰,但我相信自己有能力完成它。實際進行專題的過程中,因為對 render 相關知識還不夠熟悉,導致一開始測出來的效能數據不夠準確,常常測完之後才發現方法有誤,只好重新再測一次。不過也正是這樣反覆試錯的過程,讓我對 render 原理和效能測試方法越來越熟悉。
在做 Homework2 (stdc) 之前,「0.1 + 0.2 ≠ 0.3」對我來說只是大家熟知的電腦常識,卻沒有真正理解背後的原因。透過這次作業,我第一次從 bit 層級分析浮點數表示方式,理解這並不是電腦計算錯誤,而是十進位與二進位在表示分數時存在本質上的差異。十進位能精確表示的數值(例如 0.1),二進位不一定能精確表示,因此浮點誤差是有限 bit 表示下必然存在的限制。這份作業讓我體會到,許多看似錯誤的程式行為,深入分析後可能並非實作問題,而是底層規格與設計取捨造成的結果。
這門課中,老師經常提醒我們要先閱讀規格書與相關文件,而不是直接依賴 AI 提供的答案,因為 AI 的回答不一定完全正確。雖然一開始閱讀規格書需要花費較多時間,但在實際學習過程中,我也曾發現 AI 提供的答案與規格內容有所差異,進一步驗證了理解原始文件的重要性。此外,老師分享了許多教材與學習資源,也讓我有更多機會深入探索課程相關內容。
自我評量 (1 ~ 10):
方案 B : \[ 1+floor(GEOMEAN) = 1+ (2 \times 7 \times 9 \times 9 \times 10)^{1/5} \approx 1+6.47 = 1+6 =7 \]
