bug记录:遇到的tinycudann编译的N种错误

1. 编译成功,但是import tinycudann报错找不到DLL

  1. 编译成功,但是import tinycudann的时候,报错:
    在这里插入图片描述
    开始打断点,搜索电脑文件,发现_75_c.py应该是存在的,但就是读不到。

发现其所在的文件夹名称并不是干净的tinycudann_bindings,而是有不少后缀。

在这里插入图片描述

而原本的tinycudann_bindings文件夹中,却只有一个pyd文件,猜测这个是找不到dll的原因,因此,将带有后缀的文件夹中的所有文件,即这三个文件:
在这里插入图片描述
拷贝到tinycudann_bindings文件夹中,发现生效。错误解除。

这次bug给我的启发主要是:

  1. 需要明确conda环境中的import模块与其他模块之间的工作关系,简单理解的话,大概是这样:当在Python程序中使用import语句导入一个模块时,Python解释器会在site_packages文件夹中查找该模块,并且加载它到内存中。我開始的時候,会以为是我的cuda库之类的没有装好,去倒腾了一下环境变量,发现未果。真正令我意识到可能是简单的命名问题的是源于这几句代码:
    在这里插入图片描述
    将其打印出来后,是:在这里插入图片描述

我才逐渐意识到,是不是有可能因为tinycudann_bindings里面并没有这个_75_C的py文件,然后才去检查,最终解决了问题。
2. 导致我误以为是cuda问题的很大原因其实是那句 DLL找不到,我以为是说系统库找不到,也不太熟悉_75_C是什么,感觉像是跟cuda有关的东西。但其实不是,而是其自身安装在site_packages里的库的读取除了些问题。这个给了我一些误导,之后可以注意一下。
3. 第三点的启发其实是,这个tinycudann我其实已经在不同的电脑里面,安装过了很多遍,包括与cuda相关的pybindings,也安装了几遍,但是每一次遇到的问题都蛮新鲜,以往都是过了就过了,继续往下走,去钻研算法原理,现在觉得,其实这些过程也很有意思,解决问题的过程,本身就值得记录和欣喜。

2. 编译tinycudann报错,expect “(”…

这个的原因主要是因为:
cuda11.3只支持到vs2019的16.9,不支持16.11.
而我的vs版本是2019 - 16.11。
这个其实在nerfstudio的document的QA部分有提到,但是没那么显眼,所以还是踩了点坑。

https://github.com/nerfstudio-project/nerfstudio/blob/main/docs/quickstart/installation.md#dependencies

【待补充文档FAQ对这个问题的补充】

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLOWVERSE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值