Expand description
Tensor 模块:为图神经网络和高性能计算提供张量支持
本模块实现了 God-Graph 的 tensor 基础设施,包括:
- Dense tensor(密集张量):基于 ndarray 的 N 维数组
- Sparse tensor(稀疏张量):COO, CSR, BSR 格式
- Tensor 操作:矩阵乘法、转置、归约等
- 多后端支持:NdArray, Dfdx (GPU), Candle
- 内存池优化:减少分配开销
- 梯度检查点:降低反向传播内存占用
§特性
- 后端抽象:通过 trait 系统支持多种 backend(ndarray, dfdx, candle)
- 稀疏格式:COO(坐标格式)、CSR(压缩稀疏行)、BSR(块稀疏行)
- SIMD 优化:使用 wide crate 实现 SIMD 向量化
- 内存对齐:64 字节缓存行对齐,避免 false sharing
- 内存池:可复用的张量分配,适用于迭代算法
§示例
use god_gragh::tensor::{DenseTensor, TensorBase};
// 创建 2x3 密集张量
let data = vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0];
let tensor = DenseTensor::from_vec(data, vec![2, 3]);
assert_eq!(tensor.shape(), &[2, 3]);
assert_eq!(tensor.ndim(), 2);Re-exports§
pub use traits::COOView;pub use traits::DType;pub use traits::Device;pub use traits::SparseTensorOps;pub use traits::TensorBase;pub use traits::TensorOps;pub use dense::DenseTensor;pub use sparse::COOTensor;pub use sparse::CSRTensor;pub use sparse::SparseTensor;pub use error::TensorError;pub use types::EdgeFeatures;pub use types::NodeFeatures;pub use types::TensorEdge;pub use types::TensorNode;pub use types::AdjacencyMatrix;pub use types::DegreeMatrix;pub use backend::NdArrayStorage;pub use backend::TensorStorage;pub use backend::UnifiedStorage;pub use pool::ArenaStats;pub use pool::ArenaTensor;pub use pool::PoolConfig;pub use pool::PoolStats;pub use pool::PooledTensor;pub use pool::TensorArena;pub use pool::TensorPool;pub use gnn::Aggregator;pub use gnn::GATConv;pub use gnn::GCNConv;pub use gnn::GraphSAGE;pub use gnn::IdentityMessage;pub use gnn::LinearMessage;pub use gnn::MaxAggregator;pub use gnn::MeanAggregator;pub use gnn::MessageFunction;pub use gnn::MessagePassingLayer;pub use gnn::SumAggregator;pub use gnn::UpdateFunction;pub use graph_tensor::GraphFeatureExtractor;pub use graph_tensor::GraphReconstructor;pub use graph_tensor::GraphAdjacencyMatrix;pub use graph_tensor::GraphBatch;pub use graph_tensor::GraphTensorExt;pub use differentiable::DifferentiableEdge;pub use differentiable::DifferentiableGraph;pub use differentiable::DifferentiableNode;pub use differentiable::EdgeEditOp;pub use differentiable::EdgeEditPolicy;pub use differentiable::EditOperation;pub use differentiable::GradientConfig;pub use differentiable::GradientRecorder;pub use differentiable::GraphTransformer;pub use differentiable::GumbelSoftmaxSampler;pub use differentiable::NodeEditOp;pub use differentiable::StructureEdit;pub use differentiable::ThresholdEditPolicy;pub use unified_graph::EdgeData;pub use unified_graph::NodeData;pub use unified_graph::UnifiedConfig;pub use unified_graph::UnifiedGraph;pub use decomposition::lie_algebra::lie_exponential;pub use decomposition::lie_algebra::lie_logarithm;pub use decomposition::lie_algebra::skew_symmetric_projection;pub use decomposition::qr::orthogonalize;pub use decomposition::qr::qr_decompose;pub use decomposition::svd::low_rank_approx;pub use decomposition::svd::svd_decompose;pub use decomposition::tensor_ring::compress_tensor_ring;pub use decomposition::tensor_ring::tensor_ring_decompose;pub use decomposition::tensor_ring::TensorRing;
Modules§
- backend
- Tensor 后端抽象:支持多种 backend 实现
- decomposition
- Tensor Decomposition Tools
- dense
- 密集张量实现
- differentiable
- 可微图结构变换模块
- error
- Tensor 错误类型
- gnn
- GNN(图神经网络)原语模块
- graph_
tensor - Graph-Tensor Integration: Specialized implementations for seamless graph-tensor conversion
- ops
- Tensor 高级操作
- pool
- Tensor 内存池:优化张量分配性能
- sparse
- 稀疏张量实现
- traits
- Tensor Trait 系统:定义张量的抽象接口
- types
- Tensor 感知的节点和边类型
- unified_
graph - UnifiedGraph: 统一图结构,集成 DifferentiableGraph 和 ComputeGraph