曾亞 周琦 章杰
摘要:OpenCL作為異構系統下程序設計的主流架構之一,已經在大量異構計算系統中應用。由于異構系統最初的用途是用于在計算機系統中加速數值計算,設計人員在OpenCL框架下編寫的模塊大部分是用于數值計算,以及與數值計算息息相關的圖像處理。本文介紹一種通過OpenCL搭建CPU模塊的方法。CPU功能模塊可在部分情況下分擔或接管異構系統中部分CPU的工作。同時在一些支持可重構架構的異構系統中,CPU模塊可以替代異構系統中的CPU,這大大增加了異構系統的靈活度。本文涉及的CPU模塊兼容MIPS32指令集。
關鍵詞:OpenCL;異構系統;CPU設計;MIPS
中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9416(2018)02-0160-02
近年來,隨著單個CPU的各方面性能都達到了極限,只靠單個或者多個通用處理器(以下簡稱CPU)來提高計算機系統性能的解決方案已經不適用了。專用協處理器配合CPU的組合方式成了現在增強計算機系統性能的主要途徑,“CPU+專用協處理器”構建的異構系統成了當前大規模數據處理的首選解決方案。不過,由于異構系統本身最初是用于解決計算機系統數值計算過慢的問題,也使得異構系統中幾乎大部分模塊都是直接用于數值計算,造成了異構系統在實際應用中也僅限于用在與數值計算息息相關的圖像處理,信號處理,神經網絡等方面。
OpenCL全稱Open Computing Language,是指開放計算語言,用于編寫在異構平臺上執行的程序。作為現在流行的異構系統編程框架,可以讓異構系統的應用可以不局限于數值計算中,也可用于非數值運算中。……