From 13569a616ef3eb6a28a698e8163f0748d4a4c0c0 Mon Sep 17 00:00:00 2001 From: zy69guqi <richard.angersbach@fau.de> Date: Mon, 17 Feb 2025 17:31:23 +0100 Subject: [PATCH] Fix lint --- src/pystencils/backend/ast/vector.py | 6 ++---- src/pystencils/backend/platforms/cuda.py | 6 +++--- .../backend/transformations/loop_vectorizer.py | 18 +++++++++--------- src/pystencils/compound_op_mapping.py | 2 -- src/pystencils/jit/gpu_cupy.py | 3 +-- src/pystencils/sympyextensions/reduction.py | 10 +++++++--- 6 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/pystencils/backend/ast/vector.py b/src/pystencils/backend/ast/vector.py index 14249e1e8..5121987a8 100644 --- a/src/pystencils/backend/ast/vector.py +++ b/src/pystencils/backend/ast/vector.py @@ -92,11 +92,9 @@ class PsVecHorizontal(PsBinOp, PsVectorOp): def structurally_equal(self, other: PsAstNode) -> bool: if not isinstance(other, PsVecHorizontal): return False - return ( - super().structurally_equal(other) + return (super().structurally_equal(other) and self._lanes == other._lanes - and self._reduction_op == other._reduction_op - ) + and self._reduction_op == other._reduction_op) class PsVecMemAcc(PsExpression, PsLvalue, PsVectorOp): diff --git a/src/pystencils/backend/platforms/cuda.py b/src/pystencils/backend/platforms/cuda.py index 9877cea44..e8c8f6a3a 100644 --- a/src/pystencils/backend/platforms/cuda.py +++ b/src/pystencils/backend/platforms/cuda.py @@ -89,7 +89,7 @@ class CudaPlatform(GenericGpu): if isinstance(dtype, PsScalarType) and func in (NumericLimitsFunctions.Min, NumericLimitsFunctions.Max): assert isinstance(dtype, PsIeeeFloatType) - defines = { NumericLimitsFunctions.Min: "NEG_INFINITY", NumericLimitsFunctions.Max: "POS_INFINITY" } + defines = {NumericLimitsFunctions.Min: "NEG_INFINITY", NumericLimitsFunctions.Max: "POS_INFINITY"} return PsLiteralExpr(PsLiteral(defines[func], dtype)) @@ -170,8 +170,8 @@ class CudaPlatform(GenericGpu): case ReductionOp.Sub: # workaround for unsupported atomicSub: use atomic add # similar to OpenMP reductions: local copies (negative sign) are added at the end - call.function = CFunction(f"atomicAdd", [ptr_expr.dtype, symbol_expr.dtype], - PsCustomType("void")) + call.function = CFunction("atomicAdd", [ptr_expr.dtype, symbol_expr.dtype], + PsCustomType("void")) call.args = (ptr_expr, symbol_expr) case _: call.function = CFunction(f"atomic{op.name}", [ptr_expr.dtype, symbol_expr.dtype], diff --git a/src/pystencils/backend/transformations/loop_vectorizer.py b/src/pystencils/backend/transformations/loop_vectorizer.py index ab28507c2..b78114553 100644 --- a/src/pystencils/backend/transformations/loop_vectorizer.py +++ b/src/pystencils/backend/transformations/loop_vectorizer.py @@ -240,14 +240,14 @@ class LoopVectorizer: ) return PsBlock( - simd_init_local_reduction_vars + - [ + simd_init_local_reduction_vars + + [ simd_stop_decl, simd_step_decl, simd_loop - ] + - simd_writeback_local_reduction_vars + - [ + ] + + simd_writeback_local_reduction_vars + + [ trailing_start_decl, trailing_loop, ] @@ -258,13 +258,13 @@ class LoopVectorizer: case LoopVectorizer.TrailingItersTreatment.NONE: return PsBlock( - simd_init_local_reduction_vars + - [ + simd_init_local_reduction_vars + + [ simd_stop_decl, simd_step_decl, simd_loop, - ] + - simd_writeback_local_reduction_vars + ] + + simd_writeback_local_reduction_vars ) @overload diff --git a/src/pystencils/compound_op_mapping.py b/src/pystencils/compound_op_mapping.py index 2dd88fc94..f256369f9 100644 --- a/src/pystencils/compound_op_mapping.py +++ b/src/pystencils/compound_op_mapping.py @@ -1,5 +1,3 @@ -from operator import truediv, mul, sub, add - from .backend.ast.expressions import PsExpression, PsCall, PsAdd, PsSub, PsMul, PsDiv from .backend.exceptions import FreezeError from .backend.functions import PsMathFunction, MathFunctions diff --git a/src/pystencils/jit/gpu_cupy.py b/src/pystencils/jit/gpu_cupy.py index 331b58ce5..0792b6c01 100644 --- a/src/pystencils/jit/gpu_cupy.py +++ b/src/pystencils/jit/gpu_cupy.py @@ -11,7 +11,6 @@ except ImportError: from ..codegen import Target from ..field import FieldType -from ..types import PsType, PsPointerType from .jit import JitBase, JitError, KernelWrapper from ..codegen import ( Kernel, @@ -19,7 +18,7 @@ from ..codegen import ( Parameter, ) from ..codegen.properties import FieldShape, FieldStride, FieldBasePtr -from ..types import PsStructType, PsPointerType +from ..types import PsType, PsStructType, PsPointerType from ..include import get_pystencils_include_path diff --git a/src/pystencils/sympyextensions/reduction.py b/src/pystencils/sympyextensions/reduction.py index 25ae5c0ac..cebfcb2f7 100644 --- a/src/pystencils/sympyextensions/reduction.py +++ b/src/pystencils/sympyextensions/reduction.py @@ -19,14 +19,18 @@ class ReductionAssignment(AssignmentBase): Attributes: =========== - binop : CompoundOp + reduction_op : ReductionOp Enum for binary operation being applied in the assignment, such as "Add" for "+", "Sub" for "-", etc. """ - reduction_op = None # type: ReductionOp + _reduction_op = None # type: ReductionOp @property def reduction_op(self): - return self.reduction_op + return self._reduction_op + + @reduction_op.setter + def reduction_op(self, op): + self._reduction_op = op class AddReductionAssignment(ReductionAssignment): -- GitLab