我這一生如履薄冰,你說我能優化這個 Kernel 嗎?
我這一生如綠豆糕,可不可以讓我遠離棋盤?
我也不知道。
「我這版一定比較快。」——每個開始改 CUDA Kernel 的人,應該都曾經這麼想過。然後打開 Profiler:蛤,怎麼更慢了。
這 30 天想拿一些實際的 Kernel(以及以前寫過的東西)出來鞭屍。大概每三天一個小循環:實作 → Profile 抓戰犯 → 優化 → 看數字,試著從數據裡找出「為什麼慢」以及「憑什麼覺得還能更快」。
Memory、Warp、Occupancy、PTX……能踩的坑應該都會踩一點。
能不能成功走到效能的對岸,我也不知道...
所以,蝦米是優化? 首先,蝦米是優化? 假設今天我們手上有一個 Kernel、一個程式,或者 whatever,反正我們現在只知道一件事情:它跑了 100 ms...