ZT - 怎樣提高呼叫數學函式的程式的效能(1)

saintsiro發表於2010-08-08
Robert F. Enenkel, 軟體開發人員, IBM
Robert Enenkel 照片
Robert Enenkel 工作於 IBM 多倫多實驗室的 Optimizing Compiler Group,他之前是 IBM Centre for Advanced Studies (CAS) 的一名研究會員。Enenkel 擁有多倫多大學的學士、碩士和博士學位,其論文題目是不同等式的並行數字方法領域。他目前主要研究和開發與編譯器和作業系統相關的數字計算,包括浮點演算法,數學函式庫,演算法效能調優。Enenkel 博士得到了多個 IBM 發明成就獎和創造認可獎。更多的資訊可以在他的 Web 主頁 上找到。
Daniel M. Zabawa, 軟體開發人員, IBM
Daniel Zabawa 照片
Daniel Zabawa 在 IBM 多倫多研究室的 Optimizing Compiler Group 工作。他擁有多倫多大學的電腦科學學士和碩士學位。Zabawa 目前研究和開發的主要方面在超標量體系架構的迴圈最佳化和排程、浮點演算法庫,以及浮點算數函式的效能調優。

簡介: 本文向您介紹了 IBM MASS 高效能數學庫的內容,並展示了怎樣透過 IBM® XL C/C++ 與 XL Fortran 彙編器的自動向量化功能去使用它們,而不用需要源程式方面的更改。在介紹自動向量化的概念以及相應的彙編器選項以後,本文會提供一個離散 Fourier 轉變程式作為自動向量化的真實範例。計時的結果演示了透過 MASS 自動向量化的自動啟用功能,從而對範例程式執行彙編器使得速度增加了 8.94 倍。

[@more@]

MASS 指的是數學加速子系統(Mathematical Acceleration Subsystem)。它由數學函式組成,這些數學函式是為在各種 IBM 計算平臺上最佳化效能所設定的。MASS 最初是由 IBM 公司在 1995 年啟動的,並在隨後的發展中繼續得到改善,一直到現如今仍然在改進。

現在所有的 IBM® POWER™ 處理器都有相應的各種版本的 MASS,執行 AIX® 或者 Linux® 作業系統。還有其他版本的 IBM System BlueGene®/L 和 IBM System BlueGene®/P 超級電腦,以及 IBM Cell Broadband Engine™ (Cell/B.E.™)方案。庫包含有元素函式的加速實施方案,例如 三角函式以及雙曲線函式以及它們的倒數、乘方、對數、指數、錯誤函式以及其他函式。包含函式的完整列表可以在 頁面中找到。

有標量的庫也有向量的庫,而對於 Cell/B.E. 和 POWER7 來說,還有單個指示的多個資料(SIMD)庫。注意精確性與例外情況的處理在 MASS 函式與系統庫函式中可能是不一樣的。對於目標硬體的其他彙編器(例如 gcc)的使用者來說,MASS 庫與 IBM XL C/C++ 還有 XL Fortran 彙編器封裝到一起,並且可以透過 MASS Web 網站來獲得。

可以透過 C、 C++ 或者 Fortran 源程式來訪問庫。IBM XL C/C++ 與 IBM XL Fortran 彙編器可以識別機會以使用 MASS 來加速源程式,並自動啟用它而不用更改源程式。本文向您介紹了怎樣實施一項技術幫助您的公司更好地使用這些強大的技術。

任何包含有對數學庫函式(例如 exp、 log、sin、cos 等等)呼叫的 C、C++ 或者 Fortran 程式,潛在意義上都會從本文中所描述的技術中受益。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16896827/viewspace-1036474/,如需轉載,請註明出處,否則將追究法律責任。

相關文章