Introduction

Welcome to CoalPy ! The CoalPy library stands for Compute Abstraction Layer for Python. This library provides a simple and straight forward way to write GPU based applications.

image

Motivation

In an age when GPUs are in such high demand CoalPy tries to simplify CPU setup for GPU programming. This library offers a set of python abstractions that operate over DirectX12 or Vulkan backends.

CoalPy allows the user to focus on writing GPU compute shaders for any graphics card compliant with DirectX12 or Vulkan. The user prepares a set of simple command lists containing compute shader kernels written in hlsl. These shaders can write to a texture or buffer, and propagate this output to more shaders creating a compute graph. The shading language used is hlsl and is one of the most famous professional programming languages used for GPU programming in the gaming industry. It provides a lot of interesting features not present in Cuda and other Python GPU frameworks. The idea is to let users write powerful hlsl to solve problems without having to write thousands of lines in DirectX12 or Vulkan and not having to learn some obscure Python sub language. Write GPU code how it was meant to!

Features

  • Live editing of compute hlsl shaders. You can change shader code live while the application is running.
  • Full imgui integration. Thats right! write DearImGUI code directly in python to provide a rich user interface experience.
  • Live editing of texture data. Edit texture data while application runs,
  • Access to advanced GPU features Easy access to advanced modern GPU compute features such as bindless and indirect dispatch.
  • Easy to use window management system
  • Profiling tools CoalPy comes with an internal profiler built in coalpy to profile GPU code.
  • Multiple backend support Coalpy can run over DirectX12 or Vulkan backend on Windows. Linux is still under development.

The above features will allow you to write rich and interesting applications with a major focus on GPU high performant code.