GPU benchmarking and how to choose a GPU framework
This short guide explains how to choose a GPU framework and library (e.g., CUDA vs. OpenCL), as well as how to design accurate benchmarks.
This short guide explains how to choose a GPU framework and library (e.g., CUDA vs. OpenCL), as well as how to design accurate benchmarks.
Learn how to write a GPU-accelerated quicksort procedure using the algorithm for prefix sum/scan and explore other GPU algorithms, such as Reduce and Game of Life.
This article provides a quick tutorial, explaining how to use GDB's reverse debugging facility, also known as time travel debugging. This will show the basic commands to use this facility.
The first of a four-part series on introductory GPU programming, this article provides a basic overview of the GPU programming model.
Learn how to use a linker's section ordering feature to experiment with the layout of code and data in memory, without the need to write full linker scripts.
Printing the value of errno when debugging with GDB should be easy, but sometimes it doesn't work. Learn why this can happen and what you can do about it.
What happens when you mix a decade-old ABI comparison tool and a public Git server? The ability to preview compatibility against distributions/versions you haven't even installed.
Learn about static analysis improvements coming in GCC 14 with -fanalyzer, which helps identify issues in C code at compile-time, rather than at runtime.
Learn how to install .NET Core 2.0 on Red Hat Enterprise Linux, write a Hello World program, and run your .NET code in a Linux container in this cheat sheet.
Learn how developers can achieve higher performance using the GCC compiler system's vectorization features.
Explore best practices for eBPF application development on Linux, including languages and toolchains for working across multiple kernels and environments.
Get insights for improving JIT (just-in-time) compiler performance for Ruby based on a GCC engineer's experience developing an MIR-based JIT prototype.
Parallel programming isn't always parallel. This article examines examples of failed concurrency assumptions in the GNU C Library glibc.
This article describes the current state, recent improvements, and our plans for making truly statically linked applications.
This introduction to the Go programming language for C++ developers examines primary differences in development and program-building environments.
Explore how frame pointers can be used to unwind Linux kernel stack traces and examine different ways to obtain a backtrace, along with their pros and cons.
The realloc function in C is useful for memory management, but there are a few tricky cases to watch out for. See how Valgrind Memcheck helps find these issues.
Learn how the FORTIFY_SOURCE feature in the GNU C library improves C code security by detecting and preventing buffer overflow, and more.
Get an introduction to ISystemTap, a Jupyter kernel for Linux operating systems that helps you write and run SystemTap scripts.
Learn how to create custom stack unwinders for the GNU Project Debugger using GDB’s Python API with this in-depth tutorial.
GCC 13 includes enhancements to -fanalyzer, a static analysis pass that can identify issues at compile-time.
Discover how to use the RHEL application compatibility guidelines to ensure your application remains compatible with future RHEL releases. (Part 1 of 3)
Discover the benefits of the Fedora 38 new feature for ppc64le. Now Clang uses the IEEE 128-bit long double by default.
The GNU Compiler Collection 13 release implemented a number of interesting features in its C front-end. This article summarizes the most interesting ones.