|
docc 0.8.3 (0d44999b)
C++ API Reference
|
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. | |
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:
The serialization format is JSON-based and supports round-trip serialization (serialize then deserialize produces an equivalent node).
|
virtualdefault |
|
pure virtual |
Deserialize a library node from JSON.
| j | JSON object containing serialized node data |
| builder | SDFG builder for creating the node |
| parent | Parent block for 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::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.
|
pure virtual |
Serialize a library node to JSON.
| library_node | Library node to serialize |
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.