Skip to content

superQCman/pytorch-gpgpusim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

46a0961 · Aug 17, 2024

History

60 Commits
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Jul 26, 2024
Jul 26, 2024
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Jul 19, 2024
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Jul 19, 2024
Jul 19, 2024
Jul 19, 2024
Nov 20, 2018
Nov 20, 2018
Jul 19, 2024
Nov 20, 2018
Aug 6, 2024
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Jul 26, 2024
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Jul 26, 2024
Nov 20, 2018
Jul 26, 2024
Jul 19, 2024
Jul 19, 2024
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Nov 20, 2018
Jul 19, 2024
Jul 19, 2024
Nov 20, 2018
Jul 19, 2024
Jul 19, 2024
Nov 20, 2018

Repository files navigation

English

pytorch-gpgpusim 安装指引(矩阵相乘问题已解决,涉及矩阵相乘正向传播模块可以运行,由于反向传播需要矩阵和向量相乘,暂时还会报错)

已修改部分:

  1. 重新实现矩阵相乘
  2. 原本参数传递顺序有问题,修改成正确形式
    void THCudaBlas_Sgemm(THCState *state, char transa, char transb, int64_t n, int64_t m,int64_t k, float alpha, float *b, int64_t ldb, float *a, int64_t lda, float beta, float *c, int64_t ldc) {
  3. 重新实现batch矩阵相乘

存在问题部分(功能是向量和矩阵相乘):

THCublasCheck(cublasSgemv(handle, op, i_m, i_n, &alpha, a, i_lda, x, i_incx, &beta, y, i_incy));
修改方案: 1. 打印出传入参数,这个版本参数传递很可能是错的 2. 重新实现矩阵和向量相乘(使用cuda底层代码很可能报错,且问题难以找到) 3. 每次运行脚本以及重新编译时间开销较大,希望有能力的能共同解决

注意: 1721998440502 如果遇到类似这种错误,就是THCBlas.cu那块要重新改代码适配,有能力的可以根据我已经修改过的案例就行修改。主要要看THCTensorMathBlas.cu中调用THCBlass.cu中的函数传递参数一不一致,出问题大概率不一致,要修改参数的顺序,一般是两个矩阵传递顺序反了。然后要重新用cuda实现一下矩阵乘法,调用cublas接口大概率还会发生各种问题,并且没法看到内部情况。

安装步骤

  1. 安装cuda 10.1版本(推荐)和 cuDNN (最高版本v7.6.5
  2. 创建Anaconda虚拟环境(python 3.6或2.7)
cd pytorch-gpgpusim
conda create -n gpgpu-sim python=3.6 # 推荐使用3.6
conda activate gpgpu-sim
pip install pyyaml numpy
  1. 启动编译pytorch-gpgpusim
git -c submodule."third_party/nervanagpu".update=none submodule update --init # 加载子模块
source set_env.sh # 添加路径,这里最好检查一下路径存在且没问题,确保路径一致
python setup.py install
export PYTORCH_BIN=<pytorch directory>/torch/lib/libcaffe2_gpu.so # Anaconda 中libcaffe2_gpu.so的位置
  1. 安装torchvision
pip install torchvision==0.2.2 # 使用torchvision获取数据建议先提前下载下来再运行(版本较老直接运行可能找不到数据)
  1. 重新编译gpgpusim
git clone https://github.com/wangeddie67/Chiplet_Heterogeneous_newVersion.git # 如果已经安装过gpgpusim可跳过
cd Chiplet_Heterogeneous_newVersion
source setup_env.sh
cd gpgpu-sim
make -j4
  1. 验证
ldd $PYTORCH_BIN

若libcudart.so.10.1链接到gpgpu-sim中的libcudart.so.10.1,说明pytorch在执行cuda计算时会使用gpgu-sim。如果没有链接到gpgu-sim,重新执行第5步。

  1. 测试
cd ./benchmarks
make run-main
  1. 备注:

由于该pytorch版本较老,直接跑一些较复杂神经网络会触发各种问题(建议不要调用较新的库,极有可能不兼容)

About

No description, website, or topics provided.

Resources

License

Citation

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published