#
torch-sparse-0.6.13
## 简介 torch-sparse是PyTorch的一个扩展库,用于处理稀疏数据。它提供了一些功能强大的稀疏矩阵操作,以及能够高效执行稀疏计算的函数和工具。 ## 依赖安装 + pytorch1.10或者pytorch1.13 以及对应的torchvision(建议dtk-22.04.2、dtk-23.04与dtk-23.10) + python 3.7-3.10 ### 1、使用源码编译方式安装 #### 编译环境准备 提供2种环境准备方式: 1. 基于光源pytorch基础镜像环境:镜像下载地址:[https://sourcefind.cn/#/image/dcu/pytorch](https://sourcefind.cn/#/image/dcu/pytorch),根据pytorch、python、dtk及系统下载对应的镜像版本。 2. 基于现有python环境:安装pytorch和torchvision,whl包下载目录:[https://cancon.hpccube.com:65024/4/main/pytorch](https://cancon.hpccube.com:65024/4/main/pytorch),[https://cancon.hpccube.com:65024/4/main/vision](https://cancon.hpccube.com:65024/4/main/vision),根据python、dtk版本,下载对应pytorch和torchvision的whl包。安装命令如下: ```shell pip install torch* (下载的torch的whl包) pip install torchvision* (下载的torchvision的whl包) pip install setuptools==59.5.0 wheel ``` #### 源码编译安装 - 代码下载 ```shell git clone http://developer.hpccube.com/codes/aicomponent/torch-sparce # 根据编译需要切换分支 ``` - 源码编译(进入torch-sparse目录): ``` export C_INCLUDE_PATH=/public/software/apps/DeepLearning/PyTorch_Lib/gflags-2.1.2-build/include:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=/public/software/apps/DeepLearning/PyTorch_Lib/gflags-2.1.2-build/include:$CPLUS_INCLUDE_PATH export C_INCLUDE_PATH=/public/software/apps/DeepLearning/PyTorch_Lib/glog-build/include:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=/public/software/apps/DeepLearning/PyTorch_Lib/glog-build/include:$CPLUS_INCLUDE_PATH export C_INCLUDE_PATH=$ROCM_PATH/rocrand/include:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=$ROCM_PATH/rocrand/include:$CPLUS_INCLUDE_PATH export LD_LIBRARY_PATH=$ROCM_PATH/rocrand/lib:$LD_LIBRARY_PATH export FORCE_ONLY_HIP=1 export CC=hipcc export CXX=hipcc python setup.py install ``` #### 注意事项 + 若使用pip install下载安装过慢,可添加pypi清华源:-i https://pypi.tuna.tsinghua.edu.cn/simple/ + ROCM_PATH为dtk的路径,默认为/opt/dtk ## 验证 ```python import torch from torch_sparse import coalesce index = torch.tensor([[1, 0, 1, 0, 2, 1], [0, 1, 1, 1, 0, 0]]) value = torch.Tensor([[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]]) index, value = coalesce(index, value, m=3, n=2) ``` ``` print(index) tensor([[0, 1, 1, 2], [1, 0, 1, 0]]) print(value) tensor([[6.0, 8.0], [7.0, 9.0], [3.0, 4.0], [5.0, 6.0]]) ``` ## Known Issue - 该库没有基于cpu环境修改,仅支持dcu,请在有dcu卡的环境运行。 - 如需完整使用所有pyg功能,请pip install torch-geometric ## 参考资料 - [README_ORIGIN](README_ORIGIN.md) - [https://pypi.org/project/torch-sparse/0.6.13/](https://pypi.org/project/torch-sparse/0.6.13/)