- GPU編程實戰(基于Python和CUDA)
- (美)布萊恩·圖奧邁寧
- 374字
- 2022-12-20 18:30:48
1.3 對代碼進行性能分析
在前面的例子中,我們是通過Python中的標準time
函數分別對不同的函數和組件進行計時的。雖然這種方法對于小型的程序來說比較好用,但對于調用許多不同函數的大型程序來說并不總是可行,因為大型程序中有些函數可能值得我們去并行化,但有些函數根本不值得這樣做,甚至不值得在CPU上進行優化。本節的目標是,找到程序的瓶頸和熱點——即使我們精力充沛,并且在每一個函數調用前后都應用了time
函數,仍有可能會遺漏一些東西;或者,會有一些我們從未考慮到的系統調用或庫調用,但或許正是它們在“扯后腿”。在考慮重寫代碼以在GPU上運行之前,我們首先要找出哪些代碼需要轉移到GPU上,且必須始終牢記美國著名計算機科學家Donald Knuth的忠告——“過早的優化是萬惡之源”。
我們將借助性能分析工具來查找代碼中的瓶頸和熱點。利用這些工具,我們很容易找出程序中哪些代碼最為耗時,以便對其進行相應的優化。