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+开发比较简便

相关词条

相关搜索

其它词条