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
Related ati News
Life w/Playstation Released via Folding@Home Update
CATALYST 8.9 shows up with early OpenGL 3.0 support
ATI Radeon HD 4670 and HD 4650 launched by AMD
RV730 and RV710 board designs pictured at HEXUS
Catalyst 8.8 Hits the Street
ATI Radeon HD 4870 X2 released and reviewed
AMD 790GX review at The Tech Report
FirePro workstation accelerators launched by ATI
ATI Radeon HD 4870 X2 previews show up

