torch-mlir
存储库。该存储库有两个子模块,llvm-project
和mlir-hlo
。
现在,在我的服务器上,我已经有了
llvm-project
和 mlir-hlo
。但是,我无法替换 torch-mlir
项目中这些子模块的链接。
torch-mlir
本地.gitmodule
文件中子模块的urlgit submodule deinit
externals/llvm-project
和externals/mlir-hlo
内部并分别执行以下命令:
git remote set-url origin <my server path to llvm-project>
git remote set-url origin <my server path to mlir-hlo>
git submodule sync
git submodule update --init --recursive
我收到以下错误:
fatal: remote error: upload-pack: not our ref <aHash>
fatal: the remote end hung up unexpectedly
Fetched in submodule path 'externals/mlir-hlo', but it did not contain <aHash>. Direct fetching of that commit failed.
这个提交哈希甚至不存在于 mlir-hlo 的原始 github.com 存储库中。
更换子模块使其正常工作的正确方法是什么?
我最终执行了以下操作(成功设置和构建):
我移动到
torch-mlir
目录下并执行以下步骤。
查看子模块当前状态:
git submodule status
我们希望删除这些,因为它们链接到 github.com 链接:
git rm -r --cached externals/mlir-hlo
git rm -r --cached externals/llvm-project
rm -rf externals/llvm-project; rm -rf externals/mlir-hlo;
这将删除子模块及其缓存索引。
首先,更新子模块存储库的链接:
nano .gitmodules
现在,添加确保链接已彻底创建:
git submodule add --force <your server path to mlir-hlo>.git externals/mlir-hlo
git submodule add --force <your server path to llvm-project>.git externals/llvm-project
上述命令将下载存储库并将它们放置在子模块各自的路径中。
对于每个子模块,选择特定分支(在服务器的存储库上):
git submodule set-branch --branch main externals/mlir-hlo
git submodule set-branch --branch release/16.x externals/llvm-project
确保所有子模块同步:
git submodule update --init --recursive
此后,我们可以根据该项目的文档继续构建
torch-mlir
项目。