pystencils.backend.ast.axes.PsSimdAxis

pystencils.backend.ast.axes.PsSimdAxis#

class pystencils.backend.ast.axes.PsSimdAxis(lanes, range, body)#

Axis modelling a SIMD block.

A SIMD axis with k lanes translates to k iterations unrolled and packed into vectorized operations.

The range of a SIMD axis is interpreted as follows: - counter is the scalar counter symbol that will be vectorized - start is the value of counter on the first SIMD lane - step is the counter’s stride - stop must be equal to start + lanes * step

Parameters:
can_hoist: bool = True#

Whether or not this axis type is subject to iteration-invariant code motion.

If set to False, the HoistIterationInvariantDeclarations pass will ignore this axis type.

_clone_structural()#

Implementation of structural node cloning.

Return type:

PsStructuralNode