docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::serializer::LibraryNodeSerializer Class Referenceabstract

Base class for library node serialization. More...

#include <sdfg/serializer/json_serializer.h>

Inherited by sdfg::math::tensor::ReduceNodeSerializer< MaxNode >, sdfg::math::tensor::ReduceNodeSerializer< MeanNode >, sdfg::math::tensor::ReduceNodeSerializer< MinNode >, sdfg::math::tensor::ReduceNodeSerializer< SoftmaxNode >, sdfg::math::tensor::ReduceNodeSerializer< StdNode >, sdfg::math::tensor::ReduceNodeSerializer< SumNode >, sdfg::data_flow::AtomicScalarOpNodeSerializer, sdfg::data_flow::BarrierLocalNodeSerializer, sdfg::data_flow::CallNodeSerializer, sdfg::data_flow::InvokeNodeSerializer, sdfg::data_flow::LoadConstNodeSerializer, sdfg::data_flow::MetadataNodeSerializer, sdfg::einsum::EinsumSerializer, sdfg::fp_math::OzakiMatMulNodeSerializer, sdfg::gpu::GpuMmaFillNodeSerializer, sdfg::gpu::GpuMmaFragmentEltwiseAddNodeSerializer, sdfg::gpu::GpuMmaFragmentLoadNodeSerializer, sdfg::gpu::GpuMmaFragmentStoreNodeSerializer, sdfg::gpu::GpuMmaMatmulNodeSerializer, sdfg::gpu::GpuTileArrivalNodeSerializer, sdfg::math::blas::BatchedGEMMNodeSerializer, sdfg::math::blas::DotNodeSerializer, sdfg::math::blas::GEMMNodeSerializer, sdfg::math::cmath::CMathNodeSerializer, sdfg::math::tensor::ArangeNodeSerializer, sdfg::math::tensor::BaseElementWiseDataflowTensorNodeSerializer, sdfg::math::tensor::BatchNormNodeSerializer, sdfg::math::tensor::BroadcastNodeSerializer, sdfg::math::tensor::ClampNodeSerializer, sdfg::math::tensor::ConcatNodeSerializer, sdfg::math::tensor::ConditionalTensorCopyNodeSerializer, sdfg::math::tensor::ConstPaddingNodeSerializer, sdfg::math::tensor::EluNodeSerializer, sdfg::math::tensor::EmbeddingNodeSerializer, sdfg::math::tensor::EmbeddingRenormNodeSerializer, sdfg::math::tensor::IndexNodeSerializer, sdfg::math::tensor::LayerNormNodeSerializer, sdfg::math::tensor::LeakyReLUNodeSerializer, sdfg::math::tensor::MatMulNodeSerializer, sdfg::math::tensor::ReduceNodeSerializer< T >, sdfg::math::tensor::SpatialTensorNodeBaseSerializer, sdfg::math::tensor::TensorCopyNodeSerializer, sdfg::math::tensor::UpsampleBilinear2DNodeSerializer, sdfg::offloading::DataOffloadingNodeSerializer, sdfg::offloading::ExternalDataOffloadingNodeSerializer, sdfg::stdlib::AllocaNodeSerializer, sdfg::stdlib::AssertNodeSerializer, sdfg::stdlib::CallocNodeSerializer, sdfg::stdlib::FreeNodeSerializer, sdfg::stdlib::MallocNodeSerializer, sdfg::stdlib::MemcpyNodeSerializer, sdfg::stdlib::MemmoveNodeSerializer, sdfg::stdlib::MemsetNodeSerializer, sdfg::stdlib::TrapNodeSerializer, sdfg::stdlib::UnreachableNodeSerializer, sdfg::tiles::PipelineCommitNodeSerializer, sdfg::tiles::PipelineWaitNodeSerializer, and sdfg::tiles::TileCopyNodeSerializer.

Public Member Functions

virtual ~LibraryNodeSerializer ()=default
virtual nlohmann::json serialize (const sdfg::data_flow::LibraryNode &library_node)=0
 Serialize a library node to JSON.
virtual data_flow::LibraryNode & deserialize (const nlohmann::json &j, sdfg::builder::StructuredSDFGBuilder &builder, sdfg::structured_control_flow::Block &parent)=0
 Deserialize a library node from JSON.

Detailed Description

Base class for library node serialization.

LibraryNodeSerializer provides the interface for serializing and deserializing library nodes to/from JSON format. Each library node type should provide a custom serializer that knows how to handle its specific data members.

Serializers must handle:

  • All node-specific parameters (shapes, axes, options, etc.)
  • Debug information
  • Element IDs
  • Operation codes

The serialization format is JSON-based and supports round-trip serialization (serialize then deserialize produces an equivalent node).

Constructor & Destructor Documentation

◆ ~LibraryNodeSerializer()

virtual sdfg::serializer::LibraryNodeSerializer::~LibraryNodeSerializer ( )
virtualdefault

Member Function Documentation

◆ deserialize()

virtual data_flow::LibraryNode & sdfg::serializer::LibraryNodeSerializer::deserialize ( const nlohmann::json & j,
sdfg::builder::StructuredSDFGBuilder & builder,
sdfg::structured_control_flow::Block & parent )
pure virtual

Deserialize a library node from JSON.

Parameters
jJSON object containing serialized node data
builderSDFG builder for creating the node
parentParent block for the node
Returns
Reference to the deserialized library node

Implemented in sdfg::cuda::CUDADataOffloadingNodeSerializer, sdfg::data_flow::AtomicScalarOpNodeSerializer, sdfg::data_flow::BarrierLocalNodeSerializer, sdfg::data_flow::CallNodeSerializer, sdfg::data_flow::InvokeNodeSerializer, sdfg::data_flow::LoadConstNodeSerializer, sdfg::data_flow::MetadataNodeSerializer, sdfg::einsum::EinsumSerializer, sdfg::fp_math::OzakiMatMulNodeSerializer, sdfg::gpu::GpuMmaFillNodeSerializer, sdfg::gpu::GpuMmaFragmentEltwiseAddNodeSerializer, sdfg::gpu::GpuMmaFragmentLoadNodeSerializer, sdfg::gpu::GpuMmaFragmentStoreNodeSerializer, sdfg::gpu::GpuMmaMatmulNodeSerializer, sdfg::gpu::GpuTileArrivalNodeSerializer, sdfg::math::blas::BatchedGEMMNodeSerializer, sdfg::math::blas::DotNodeSerializer, sdfg::math::blas::GEMMNodeSerializer, sdfg::math::cmath::CMathNodeSerializer, sdfg::math::tensor::ArangeNodeSerializer, sdfg::math::tensor::BroadcastNodeSerializer, sdfg::math::tensor::ClampNodeSerializer, sdfg::math::tensor::CMathTensorNodeSerializer, sdfg::math::tensor::ConcatNodeSerializer, sdfg::math::tensor::ConditionalTensorCopyNodeSerializer, sdfg::math::tensor::ConstPaddingNodeSerializer, sdfg::math::tensor::ConvNodeSerializer, sdfg::math::tensor::EluNodeSerializer, sdfg::math::tensor::EmbeddingNodeSerializer, sdfg::math::tensor::EmbeddingRenormNodeSerializer, sdfg::math::tensor::GELUNodeSerializer, sdfg::math::tensor::IndexNodeSerializer, sdfg::math::tensor::LeakyReLUNodeSerializer, sdfg::math::tensor::MatMulNodeSerializer, sdfg::math::tensor::PoolingNodeSerializer, sdfg::math::tensor::ReduceNodeSerializer< T >, sdfg::math::tensor::ReduceNodeSerializer< MaxNode >, sdfg::math::tensor::ReduceNodeSerializer< MeanNode >, sdfg::math::tensor::ReduceNodeSerializer< MinNode >, sdfg::math::tensor::ReduceNodeSerializer< SoftmaxNode >, sdfg::math::tensor::ReduceNodeSerializer< StdNode >, sdfg::math::tensor::ReduceNodeSerializer< SumNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< T >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< AbsNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< AddNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< CastNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< DivNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< ErfNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< ExpNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< FillNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< LogicalNotNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< MaximumNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< MinimumNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< MulNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< PowNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< ReLUNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< RsqrtNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< SigmoidNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< SqrtNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< SubNode >, sdfg::math::tensor::SimpleElementWiseDataflowTensorNodeSerializer< TanhNode >, sdfg::math::tensor::TaskletTensorNodeSerializer, sdfg::math::tensor::TensorCopyNodeSerializer, sdfg::math::tensor::UpsampleBilinear2DNodeSerializer, sdfg::offloading::ExternalDataOffloadingNodeSerializer, sdfg::rocm::ROCMDataOffloadingNodeSerializer, sdfg::stdlib::AllocaNodeSerializer, sdfg::stdlib::AssertNodeSerializer, sdfg::stdlib::CallocNodeSerializer, sdfg::stdlib::FreeNodeSerializer, sdfg::stdlib::MallocNodeSerializer, sdfg::stdlib::MemcpyNodeSerializer, sdfg::stdlib::MemmoveNodeSerializer, sdfg::stdlib::MemsetNodeSerializer, sdfg::stdlib::TrapNodeSerializer, sdfg::stdlib::UnreachableNodeSerializer, sdfg::tiles::PipelineCommitNodeSerializer, sdfg::tiles::PipelineWaitNodeSerializer, and sdfg::tiles::TileCopyNodeSerializer.

◆ serialize()

virtual nlohmann::json sdfg::serializer::LibraryNodeSerializer::serialize ( const sdfg::data_flow::LibraryNode & library_node)
pure virtual

Serialize a library node to JSON.

Parameters
library_nodeLibrary node to serialize
Returns
JSON representation of the node

Implemented in sdfg::cuda::CUDADataOffloadingNodeSerializer, sdfg::data_flow::AtomicScalarOpNodeSerializer, sdfg::data_flow::BarrierLocalNodeSerializer, sdfg::data_flow::CallNodeSerializer, sdfg::data_flow::InvokeNodeSerializer, sdfg::data_flow::LoadConstNodeSerializer, sdfg::data_flow::MetadataNodeSerializer, sdfg::einsum::EinsumSerializer, sdfg::fp_math::OzakiMatMulNodeSerializer, sdfg::gpu::GpuMmaFillNodeSerializer, sdfg::gpu::GpuMmaFragmentEltwiseAddNodeSerializer, sdfg::gpu::GpuMmaFragmentLoadNodeSerializer, sdfg::gpu::GpuMmaFragmentStoreNodeSerializer, sdfg::gpu::GpuMmaMatmulNodeSerializer, sdfg::gpu::GpuTileArrivalNodeSerializer, sdfg::math::blas::BatchedGEMMNodeSerializer, sdfg::math::blas::DotNodeSerializer, sdfg::math::blas::GEMMNodeSerializer, sdfg::math::cmath::CMathNodeSerializer, sdfg::math::tensor::ArangeNodeSerializer, sdfg::math::tensor::BaseElementWiseDataflowTensorNodeSerializer, sdfg::math::tensor::BroadcastNodeSerializer, sdfg::math::tensor::ClampNodeSerializer, sdfg::math::tensor::CMathTensorNodeSerializer, sdfg::math::tensor::ConcatNodeSerializer, sdfg::math::tensor::ConditionalTensorCopyNodeSerializer, sdfg::math::tensor::ConstPaddingNodeSerializer, sdfg::math::tensor::ConvNodeSerializer, sdfg::math::tensor::EluNodeSerializer, sdfg::math::tensor::EmbeddingNodeSerializer, sdfg::math::tensor::EmbeddingRenormNodeSerializer, sdfg::math::tensor::GELUNodeSerializer, sdfg::math::tensor::IndexNodeSerializer, sdfg::math::tensor::LeakyReLUNodeSerializer, sdfg::math::tensor::MatMulNodeSerializer, sdfg::math::tensor::PoolingNodeSerializer, sdfg::math::tensor::ReduceNodeSerializer< T >, sdfg::math::tensor::ReduceNodeSerializer< MaxNode >, sdfg::math::tensor::ReduceNodeSerializer< MeanNode >, sdfg::math::tensor::ReduceNodeSerializer< MinNode >, sdfg::math::tensor::ReduceNodeSerializer< SoftmaxNode >, sdfg::math::tensor::ReduceNodeSerializer< StdNode >, sdfg::math::tensor::ReduceNodeSerializer< SumNode >, sdfg::math::tensor::TaskletTensorNodeSerializer, sdfg::math::tensor::TensorCopyNodeSerializer, sdfg::math::tensor::UpsampleBilinear2DNodeSerializer, sdfg::offloading::DataOffloadingNodeSerializer, sdfg::offloading::ExternalDataOffloadingNodeSerializer, sdfg::rocm::ROCMDataOffloadingNodeSerializer, sdfg::stdlib::AllocaNodeSerializer, sdfg::stdlib::AssertNodeSerializer, sdfg::stdlib::CallocNodeSerializer, sdfg::stdlib::FreeNodeSerializer, sdfg::stdlib::MallocNodeSerializer, sdfg::stdlib::MemcpyNodeSerializer, sdfg::stdlib::MemmoveNodeSerializer, sdfg::stdlib::MemsetNodeSerializer, sdfg::stdlib::TrapNodeSerializer, sdfg::stdlib::UnreachableNodeSerializer, sdfg::tiles::PipelineCommitNodeSerializer, sdfg::tiles::PipelineWaitNodeSerializer, and sdfg::tiles::TileCopyNodeSerializer.


The documentation for this class was generated from the following file: