PeakStream Workstation beta for Windows released

Wednesday 28th March 2007, 07:02:00 PM, written by Tim

Yesterday, PeakStream released a public beta of its PeakStream Workstation application for Windows XP. This version of PeakStream Workstation is a set of APIs for C and C++ to enable GPGPU progrmaming and a Visual Studio 2005 plugin for profiling and debugging. Programs written using the PeakStream APIs can be compiled with targets for either CPU or GPU support, although the beta only supports the AMD R580 GPU at this time. Support for additional GPUs as well as Cell looks to be forthcoming.

We've taken a look at the (remarkably good!) documentation for PeakStream, and it is surprisingly different from other high-level GPGPU langauges such as Brook or CUDA. Some highlights:

  • Unlike CUDA or Brook, PeakStream doesn't explicitly use functions defined as kernels for controlling computation on the GPU. Instead, it's more akin to OpenMP; GPU computation takes place inside delimited sections within standard C functions.

  • GPU computation is all done using specific PeakStream API calls. For example, to compare the value of every element in a matrix, the sp_le_f32 call would be used instead of (for example) a for loop and <=. PeakStream uses a second JIT compiler to create the actual kernel that executes on the GPU once a reasonable number of calls have been received. Hopefully, this will help with the common bottleneck of too much PCIe bus traffic versus the amount of computation.

  • While the compiler is presumably pretty good at creating kernels, a programmer can create functions that will become kernels, much like CUDA or Brook. One extremely interesting bit is that a code reuse section (PeakStream's name for explicitly defined kernels), of which there can only be one at a time, can be called recursively.

  • Much like CUDA, an FFT library and a BLAS library are provided in PeakStream.

  • PeakStream is using CTM for the R580.

Saying that PeakStream only targets the R580 probably isn't exactly true. In the release notes, the following statement appears: "An unknown ATI GPU (typically a newer graphics board type) no longer causes a segmentation violation." Good to see R600 support there. What this means in terms of CTM binary compatibility between R580 and R600, exactly, it's too early to tell.

It seems unlikely that the PeakStream runtime will ever be released for free. A call to sp_init() checks the status of the PeakStream license, and if such a license is not found, the application quits.

All in all, it's an extremely impressive beta, so if you are at all interested in GPGPU programming, we highly recommend you check it out. Feel free to leave some comments on the beta, and hopefully we'll be able to take a deeper look soon.



Tagging

ati ± amd, gpgpu, peakstream, ctm

Related ati News

ATI shoots a Bolt through its GPU compute stack
AMD releases CodeXL 1.0
ATI 69xx Series launches - Crocodile Dundee beware
ATI 68xx Series Launches
ATI releases OpenGL4.0 preview driver, for great justice
ATI 5830 launched, baffled looks follow
ATI Cypress Gaming Performance Analysis
ATI Catalyst 10.1 Display Driver
ATI Radeon HD 5670 released, bringing DX11 for less than $100
ATI 5970 comes out to play, completes ATI's lineup