An OpenCL.NET Program for Device Information

There was an interesting question on today asking about whether there is an API in C# for querying information about the GPUs installed. Apparently, GPU-Z uses the CUDA API to get information about an NVIDIA GPU, and GPUPerfAPI for the AMD GPU. However, a good alternative to those APIs is OpenCL, a platform independent framework to gather information about the computing devices in a PC. For … Continue reading An OpenCL.NET Program for Device Information

Synchronization Using Barrier for Tasks in the .NET Task Parallel Library

Lately I have been converting some GPGPU algorithms from CUDA into C# and the Task Parallel Library, e.g., tiled reduction. However, I noticed a significant problem in the efficiency of the System.Threading.Barrier class for task synchronization. This problem was also noted by Andrea Esuli here, who proposed an incomplete solution. As stated in the documentation, “[Barrier] enables multiple tasks to cooperatively work on an algorithm in parallel through multiple … Continue reading Synchronization Using Barrier for Tasks in the .NET Task Parallel Library

Windows 10 on VirtualBox

The Windows 10 preview has been out for several months, but it still doesn’t work well in VirtualBox: the VirtualBox graphics driver crashes with “Windows cannot initialize the device driver for this hardware. (Code 37)” or “Windows has stopped this device because it has reported problems. (Code 43)”. This means you cannot use “auto-resize Guest Display”. Fortunately, I saw in this nice work around. In … Continue reading Windows 10 on VirtualBox

Reboot …

After a long hiatus from this blog, I am returning to write about programming, C++, C#, PHP, Java, Linux, Windows griping, and other tidbits. Several years have passed and technologies have matured–ever so slightly on the desktop, IMHO. I have started a new project related to GPGPU computing: Campy.NET, a “better” API to access the GPU for CLI programs on Windows. Please check out: … Continue reading Reboot …