版本 4b648acbb5b12cee72a456a0e9301d7637480c8c
ollieni (倪英智)
2024 Linux 核心設計 春季班 自我評量
- 簡介:國立成功大學 敏求智慧運算學院 人工智慧機器人 114 級
- GitHub: ollieni
- HackMD: NIYINGCHIH
成果發表與貢獻
課程教材修訂
你所不知道的 C 語言:編譯器和最佳化原理篇: Braifck -> Brainfck、.改成,、增加空白、增加程式的格式
你所不知道的 C 語言:編譯器原理和案例分析: 又 -> 有
錯誤更正碼介紹和實作考量: 增加空白,漢明離 -> 漢明距離
你所不知道的 C 語言: 執行階段程式庫 (CRT): imgur 圖片無法顯示修正
你所不知道的 C 語言:連結器和執行檔資訊: RELA relocation -> RELA relocations
你所不知道的 C 語言:動態連結器篇: 作中學 -> 做中學
你所不知道的 C 語言:物件導向程式設計篇: develeopment -> development
作業與隨堂測驗
- lab0: HackMD
完成指定的佇列操作,針對使用到的 git hook 和 clang-format 做查詢並理解,完成 list_sort 和 Tim_sort 的引入,實作 Fisher–Yates shuffle。
- quiz1 + 2: HackMD
重新理解並探討 quiz1 + 2
- quiz3 + 4: HackMD
重新理解並探討 quiz3 + 4 * Assessment: HackMD
撰寫閱讀〈因為自動飲料機而延畢的那一年〉後的心得,研讀課程教材並提出疑問。 * Integration: HackMD
期末專題
Pub/Sub模擬: HackMD
我實作出 Pub/Sub 模型的 Linux kernel module,還有探討訂閱者數量 vs. 執行時間在不同組態的表現,也有做 Kthread 和 CMWQ 的效能比較。
與授課教師的互動
一對一討論:5月 20日 (星期一)⋅下午 7:00 - 7:30
- bi-endianness 如何切換?
會在開機時做選擇,若要在開機後做轉換會很麻煩。
- CUDA 如何串接軟硬體,讓程式可以運用 GPU 資源?
授課教師告知我還有 OpenCL 這個框架,CUDA 和 OpenCL 都是平行運算框架,OpenCL可以支援很多種計算設備,如 CPU、GPU、FPGA,而 CUDA 只能支援 Nvidia 的 GPU。
- 6/20 上課 按計算機計算答案
修課心得
我學到很多大學沒注意到的事情,例如使用 hook 來要求 commit message 的品質,以及使用 clang format ,使程式有一致的風格,可以使得大專案變得更加容易協作,更好的去實行 code review 的動作,這對要成為一個工程師來說是一個很好的素養。
實作期末專題讓我理解甚麼是 Pub/Sub 模型,也練習了如何做出一個 Linux kernel module,我也理解並使用 ktime 函式庫做時間的測量。
閱讀〈因為自動飲料機而延畢的那一年〉給我很多心得感想,在完成一整個專案的過程,一定會遇到很多困難,看了前輩的整個心路歷程,我覺得很重要的事情是如何面對困難與挫折,在這堂課我誠實面對自己,我基礎打得不好,在很多方面以我想成為的人來說都有所欠缺,但是這堂課有提升我的自我學習能力,我覺得這是非常好的收穫。
與指導教授的學習回顧
二月份回顧 : 3月7日 週四 下午 10:41
- 指標的操作、bitwise-operation、<list.h> 的運用,以及工程師的好素養 : 怎麼樹立一致且易於協作的程式開發規範、如何使用 Git 以及寫出好的 commit message,研究自動測試機制。
三月份回顧 : 4月8日 週一 下午 8:32
陸游的名言:“紙上得來終覺淺,絕知此事要躬行”,以及蔡志浩的觀點:“大部分的人一輩子洞察力不彰,原因之一是怕講錯被笑。想了一點點就不敢繼續也沒記錄或分享,時間都花在讀書查資料看別人怎麼想。看完就真的沒有自己的洞察了”
<The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits>