brook

brook

計算機術語
2003年,斯坦福大學的Ian Buck等人對ANSI C進行擴展,開發了基于NVIDIA Cg的Brook源到源編譯器。Brook可以将類似C的brook C語言通過brcc編譯器編譯為Cg代碼,隐藏了利用圖形學API實現的細節,大大簡化了開發過程。[1]
    中文名: 外文名:brook 所屬學科: 提出者:Ian Buck 提出時間:2003年 應用學科:計算機

簡介

早期的Brook編譯效率很低,并且隻能使用像素着色器進行運算。受GPU架構限制,Brook也缺乏有效的數據通信機制。AMD/ATI公司在其GPGPU通用計算産品Stream中采用了Brook的改進版本Brook+作為高級開發語言。Brook+的編譯器的工作方式與Brook不同,提高了效率。

概念

Brook+語言中兩個最關鍵的概念:

1.流。流就是一些類型相同的數據,他們可以被分配到不同的流處理器中進行處理。

2.内核。内核程序其實就是GPU硬件的行為程序,它指定了硬件的行為特性。

Brook+的内核函數是被Brcc(Brook Code Compiler)編譯的,編譯後生成三個文件,其中兩個是.h和.cpp文件,就是定義了一些和函數相關的類,還有一個最關鍵的就是IL(IL是指AMD Intermediate Language。是一種彙編形式的語言)代碼。有了這些文件,這三個文件再和用戶的其他源文件一起編譯,鍊接,從而生成可執行性文件。Brook+的程序在運行時,是需要Brook runtime的。Brook+的内核程序也可以被CPU執行,還可以進行調試。

Brook+的版本是1.4版本。已經被提交到了SourceForge上,應該是沒有太多的維護了。由于Brook+還有一些限制,所以在靈活性方面并不如CUDA好。而且由

于過多的封裝,效率也并不很高,不支持多GPU,rook+的kernel不支持高級的GPU命令,比如本地共享内存和原子操作等。唯一的好處就在于用Brook+開發比較簡便

相關詞條

相關搜索

其它詞條