Contacts
Follow us:
Get in touch

Category: Tips&Tricks

Image upscaling using convolutional neural networks in Vulkan

In the world of high-performance programming, true portable code has been a goal for a long time. Vulkan has been very successful at this, with Vulkan drivers being provided by every major GPU vendor and available for all common desktop and…

Read More

RDNA and CDNA: similarities and differences

In 2019 AMD announced the Radeon™ RX 5700 XT, a GPU that sported its brand-new at the time architecture named RDNA. It aimed to provide upgrades compared to the older GCN-based cards. Then one year later, AMD announced another GPU architecture…

Read More
Precision

Basic Concepts: Writing OpenCL code for single and double precision

Support for double precision floating-point type double in OpenCL kernels requires an extension. AMD provides cl_khr_fp64 for newer high-edn hardware, but also a non-fully compliant cl_amd_fp64 extension for other hardware. NVIDIA and Intel support the cl_khr_fp64, so no exceptions need to…

Read More
Oops

Basic Concepts: out of resources with clEnqueueReadBuffer

In the series “Basic Concepts” various basics of GPGPU and OpenCL are discussed. This time we go into a typical one: when an error does not imply the actual problem. It is therefore good to have an overview of all errors…

Read More
computer-says-no

OpenCL error codes (1.x and 2.x)

Knowing all errors by heart is good for quick programming, but not always the best option. Therefore I started to create a full list with extra info, taken from cl.h and the reference documentation. The problem with many error-codes is that…

Read More
flags

OpenCL Basics: Flags for the creating memory objects

In OpenCL large memory objects, residing in the main memory of the host or the global memory at the accelerator/GPU, need special treatment. First reason is that these memories are relatively slow. Second reason is that the most times serial copy…

Read More
bigstock-Different-Technologies-and-Ope-15769229

Targetting various architectures in OpenCL and CUDA

The question we aim to answer in this post is: “How to do you make software that performs on several platforms?”. Note: This article is not fully finished – I’ll add more information during the coming months. It’s busy here! Even…

Read More