请输入您要查询的百科知识:

 

词条 brook
释义

2003年,斯坦福大学的Ian Buck等人对ANSI C进行扩展,开发了基于NVIDIA Cg的Brook源到源编译器。Brook可以将类似C的brook C语言通过brcc编译器编译为Cg代码,隐藏了利用图形学API实现的细节,大大简化了开发过程。但早期的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+开发比较简便

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/20 16:26:51