ATI Stream upgrade embraces OpenCL
Fusing with AMD's Fusion
The ATI Stream software development kit was bumped up to version 2.1 on Monday, receiving a hefty dose of OpenCL capabilities in the run-up to AMD's Fusion series of "accelerated processing units" (APUs) scheduled to appear next year.
Not that devs using the new ATI Stream SDK 2.1 will have to wait until then to take advantage of OpenCL. That technology - which shares parallelized computing chores between the CPU and the GPU - is already being embraced by a number of industry players, spearheaded by standards-definition work being done by the Kronos Group.
OpenCL enables what's acronymicized as GPGPU, or general-purpose computing on graphic processing units. Microsoft has its own GPGPU competitor to OpenCL, a DirectX API set called DirectCompute (video).
But the industry does seem to be rallying around OpenCL - the Kronos Group lists 34 participants in its OpenCL efforts. In addition to Apple, which originally submitted OpenCL to the Kronos Group for standardization in 2008, participants include such heavyweights as ARM, IBM, Intel, Samsung, and Toshiba.
The OpenCL enhancements to the ATI Stream SDK announced Monday include support for OpenCL/OpenGL interoperability, improved code granularity and efficiency, support for OpenCL images and media operations, the ability to send multiple OpenCL tasks to the same target device simultaneously, improved analytics and more.
Michael Chu, product manager for ATI Stream computing, began a Monday blog post with the popping of virtual champagne. "One of the proudest moments in a software product manager's life is when a new version of the team's product is released."
Chu also pointed toward AMD's Fusion processors. "Looking forward to the planned introduction of the AMD Fusion family of APUs in 2011, the role of OpenCL in programming these devices is going to be essential," he said. "OpenCL certainly fits the bill for not only current discrete systems, but for APUs as well." ®
Do OpenCL + OpenGL as standards = standards-based games?
Only time will tell, of course, but what a boon that could be to OS X and Linux. I know the whole ball of hype around OpenCL has been for scientific clusters and business-critical apps. However, if there's a standard way to get vector math for game logic and physics that meshes well with OpenGL for graphics, and assuming SDL or something is up to the input tasks and audio, then that sounds like a good cross-platform substitute for DirectX.
With Apple, IBM, ATI, Arm, NVidia, and more behind it, it might actually catch on well enough to gain some traction among developers. If the cross-platform (OS and hardware) wrinkles can be ironed out and the end-user libs work acceptably well everywhere, not only things like render farms and investment banking could use it. Everything that needs lots of processing help from a vector engine could use it. That includes games -- and for more than graphics -- as NVidia's few PhysX titles have shown us.
rights for mice!
"assuming SDL or something is up to the input tasks"
Had a quick look. As Kajagoogoo once said, "I don't think so".
Why is it that Input Device API's are always neglected? Usually they're lowest common denominator affairs: keyboard & mouse. Down the stack is the excellent HID protocol, but it's a bit awkward to use in an application. Microsoft wraps this up in DirectInput - which it then, bizarrely, slags off. I don't think there's a Linux equivalent.
So come on, API writers: a flexible one for all those haptic glove applications.