OpenCL 2.0 has been presented by Khronos at SIGGRAPH 2013 and has a draft specification and it has many exciting features. At this point the 2.0 spec needs some clarification in some aspects and preferably some examples.
Among the new interesting features are:
Shared virtual memory – clSVMAlloc will be the new base memory allocation function for shared memory that will remain synchronized between host and device. This is going to be a useful function when the two devices share the same physical memory, so that no copy is needed.
Dynamic parallelism – Device kernels will be able to launch its own subkernels in the device. With proper attention this should effectively enable recursive kernels.
Generic address space – At this moment, developers need to declare all buffer types in kernels and functions. If a function does the same operation to a __global or __private memory buffer it has to be duplicated. Generic address spaces should eliminate this need by accepting generic memory qualifiers.
Pipe spaces – This seems to be a pipeline with FIFO characteristics that can be used by workitems and host to allow message passing.
Of all thesen new features, dynamic parallelism seems to be the one that will affect the most how developers use OpenCL. Let’s just hope that implementations come soon!
CMSoft Stereoscopic 3D Editor, our tool to visualize and convert pictures to .MPO format, has been updated to produce half-width output and left-right image orders. These changes should make it easier to visualize stereoscopic pictures using 3D TVs.
Unfortunately our forum has been receiving too much spam and we just haven’t been able to keep up with the required moderation to post useful information. Feel free to contact us with any OpenCL or resource question and our moderators will answer and open the thread in the appropriate forum.
In the meantime, we’re preparing an interesting semi-distributed computing framework using OpenCL.
A new edition of SIGGRAPH is coming up this year with cutting-edge technology in computer graphics as well as heterogeneous computing and parallel processing with GPUs in latest years. As always, Khronos Group will host a Birds of a Feather event which will feature OpenCL, OpenGL, COLLADA and their various high quality open standards.
We at CMSoft look forward to meeting all the OpenCL community in the OpenCL BOF. See you in Anaheim!
The new Kinect SDK 1.7 features a very interesting tool: hand detection including open and closed hands (grip). However, the documentation for how to use the WPF controls or even how to set up and handle hand interaction events is quite poor, especially without using a KinectRegion.
We at CMSoft bring you a very basic sample demonstration to show how to handle Kinect open/close hand interactions. We show how to use C# to implement IInteractionClient to create the InteractionStream and handle the InteractionFrameReady event.
In this example, we demonstrate how to track positions and grips of left and right hands from 2 users. The Labels move and change color as users grip.
We’re working to develop hand-controlled presentation software and 3D interaction with virtual worlds, stay tuned! Also feel free to comment or ask questions in our forum.
In the age of information, where huge amounts of data is available in the most diverse formats such as text, pictures, movies and audio and in a myriad of applications such as the Web itself, Facebook, Linkedin, Instagram, retrieving the most useful information is still a challenge.
The topic is closely related to parallel processing insofar as lots of computing power is necessary to fulfill queries whose complexity doesn’t cease to increase. It would not come as a surprise to see servers resort to GPU-powered OpenCL solutions for improved performance in the near future.
The topic has raised interest in the corporate world: the Wall Street Journal published two very interesting articles about the theme:
Interactive technologies have become extremely important in a world where busy users demand intuitive devices which demand little to no learning time. In this modern scenario, tablets have emerged with their easy-to-use touchscreens, gaming consoles have been successfully exploring movement controls (Wii, PS3 eye, Kinect) and augmented reality has started to emerge as a viable technology.
However, implementation of intelligent systems using devices such as the Kinect usually involves real-time processing of data from multiple sensors (RGB camera, depth camera, audio, accelerometers). This task can be achieved using OpenCL to harness the processing power of multicore GPUs and CPUs.
CMSoft brings you a tutorial on how to create a C# framework to capture Microsoft Kinect sensor data and transfer it to an OpenCL GPU Device, thus enabling the development of software that can potentially process Kinect data hundreds of times faster when compared to pure CPU processing.
In the results we show two OpenGL textured quads which are used to display RGB and depth information acquired from a Kinect sensor. Notice that there is a full false coloring procedure which includes highlighting players detected by Kinect.