brook

生活百科 2023-01-17 20:00生活百科www.aizhengw.cn

brook

2003年,史丹福大学的Ian Buck等人对ANSI C进行扩展,开发了基于NVIDIA Cg的Brook源到源编译器。Brook可以将类似C的brook C语言通过brcc编译器编译为Cg代码,隐藏了利用图形学API实现的细节,大大简化了开发过程。

基本介绍

  • 中文名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+开发比较简便

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有