Platforms#
All target-specific code generation in the pystencils backend is facilitated through the platform classes. This includes:
Materialization of the iteration space, meaning the mapping of iteration space points to some indexing structure
Lowering of mathematical functions to their implementation in some runtime environment
Selection of vector intrinsics for SIMD-capable CPU targets
Encapsulation of hardware- and environment-specific details into platform objects allows us to implement most of the code generator in a generic and hardware-agnostic way. It also makes it easier to extend pystencils with support for additional code generation targets in the future.
Base Classes#
Abstract base class for all supported platforms. |
|
Generic CPU platform. |
|
Base class for CPU platforms with vectorization support through intrinsics. |
CPU Platforms#
Platform modelling the X86 SSE/AVX/AVX512 vector architectures. |
|
An enumeration. |
GPU Platforms#
Common base platform for CUDA- and HIP-type GPU targets. |
|
Platform for the CUDA GPU taret. |
|
Platform for the HIP GPU taret. |