Category: Blog
-
📈 CUDA Parallel Sum Benchmarks
As my first foray into CUDA programming I set myself a challenge to experiment with different methods of finding the total sum of a large array of numbers, trying different strategies exposed via CUDA to see how different approaches compare and what comes out fastest. A lot of my GPU experience previously on PC has…
-
Exploring GPU Memory Transfer Speeds (Radeon RX 6600 & RTX 5080)
I wanted to get a feel for how fast my AMD Radeon RX 6600 could transfer memory around and how much this changed depending on how much memory was being transferred as well as what type of memory was being copied to and from (E.g. UPLOAD or READBACK). I will also compare the results to…
-
🐇 Slim Graphics: Introduction
Slim Graphics is my toy graphics engine I’ve been using to experiment with different graphical techniques and learn more about DirectX 12 as well as other graphical features such as Mesh Shaders as well as optimisation techniques. I have not designed the API to be perfectly optimal, nor have I set out to create the…
-
Comparing Synchronisation Methods on Windows
Mutexs, Semaphores, Condition Variables, Critical Sections… There are so many different synchronisation types to choose from but how do they compare in terms of performance and what other synchronisation types are there we can explore? My tests here have been written with a job-system in mind, where worker threads are waiting for work which is…
-
Does calling sqrtf always result in a single asm instruction?
I was recently running some performance benchmarks across different platforms to understand the cost of some simple mathematic functions such as sqrtf and quickly noticed, under certain circumstances compilers such as MSVC, Clang and GCC by default will not generate a single x86-64 sqrtss instruction, there is a little more to it… I think discovering…