当前位置: 首页 > news >正文

caffe适配cudnn9.6.0(ai修改代码踩坑)

caffe适配cudnn:https://github.com/dyc2424748461/caffe
(测试一下,成没成,反正我看到它用gpu了😶)
因为突发奇想,想要玩easymocap,先是简单使用media跑通了一下,然后过了几天,又想使用openpose。在安装openpose的时候发现,caffe版本已经是六七年前了,有人适配了cudnn8.0,但是搜了很久也没有找到适配cudnn9.x的,于是乎咱们就想到现在ai都那么强大了,而且任务还是比较清晰的,就使用了ai试试。

刚开始并不知道现在已经有比较完善的智能体,先是尝试了千问,豆包,感觉不太行,老是让我自己写。很烦,而且报错上的处理真的很潦草。于是乎开始在网络上搜索可以完成这类的ai,然后搜到了智能体,尝试了有

mgx(emmm,因为没充钱老是暂停,体验感上稍弱一点,代码也写了部分,但是老是暂停,太耗时间了于是转移阵地了),
claude3.7(很强但是得我自己试跑运行然后反馈报错),
openhans(免费赠送的额度使用起来很爽)。

然后主要的程序使用openhands修改的,它在它的环境测试完成后,然后自己运行的时候,有部分报错,把报错发给它的话,他给出了解决方案,但是报错的问题是可能多方面导致的,所以它也不确定是为什么。而且重要的一点是,咱们完全是小白啊。不是很懂这里面的运行逻辑。

然后咱把这个点单独摘出来,问了claude,chatgpt,grok,千问,豆包,等等,给出的答案也都是差不多的,然后我就一个一个排错呗,但是可恶的是按照他们给的修改代码,修改后完全不起作用,而且有的给出要修改四五个文件,我都炸了,但是我也可怜兮兮的改了,根本没有效果,还引发了其他的报错。

这一下炸开了,开始自己动手丰衣足食了。一个一个问可能出现的原因,然后自己去排查,排查排查着猛然发现我自己真是个der,直接让它写个脚本帮我检测不就好了,好家伙,这下可来劲了。

最终确定各个版本兼容,好了不是环境的问题了。

这样排查出来那就是代码的问题了,难道openhands欺骗我了,于是在他的虚拟机里运行试了试,确实可以啊,但是看了它之前修改代码和运行的日志,欸,有点不对劲,有点不对劲,它这个版本是cpu版本的,根本不是我想要的gpu版本,还是之前被那几个mgx错误搞混了头脑,openhands行了,就无条件相信他了。好了让它重新写一版吧。

这次紧盯着openhands,虽然它有的操作着实惊呆我了,佛挡杀佛,魔挡杀魔,有的不仅改了自己的文件还删除了一些文件。为了目的不择手段,很好我很喜欢。

过了不知多久,它说好了,我这次很辩证的看着它的修改日志,有点陷入了沉思,这改了cudnn的官方文件,这删除了自己的文件,真的不会报错嘛,但是它说测试成功了,那咱们在他的环境里试试吧。一试,ok,可以运行。

现在在自己的环境里开始测试,这一测试。。。。emmm,报错,,把报错发给openhands,没事,小问题,直接解决,自己环境运行有报错,在发给他,ok,小问题,再发给他,ok,小问题。。。那么缠绵了几个来回,好了有个问题开始多种方案了,它竟然让我降低版本了,好狡猾。

咱们肯定先信他一信,版本安装了将近半个多小时,运行报错,然后丢给他,ok,小问题,出错,再丢给它,小问题,又缠绵了很久。又有个问题卡住了,卡住了。

然后咱们只请出其他的老大哥了,chatgpt,claude,grok。都尝试一遍,似乎没有得到很有用的消息,把全部报错都丢给它们,好的,他们说改咱们就改,很听劝的。改了改去,突然有个版本运行成功了,赶紧保存那个代码,正以为要走向胜利的时候,结果还是当头一棒。

一看这个版本不对啊。虽然也能跑,但是是cuda11.8啊,不行不符合咱们的目标。咱的目标是要适配到cuda12.x的,ok接着改,这种报错这种修改,各种报错各种修改,现在已经把caffe的源码差不多摸得透透的了,已经知道它整个的运行流程了。

突发一个难解决的问题,又问了将近两天,完全没有头绪。有个文件一直显示找不到函数,而且那个函数是在cuda里面的,而且我设置了使用nvcc进行编译了,把错误(只发了error)全都发给ai们,给出解决方案,咱们改!改了改去,那个错误并没有解决,放弃一天休息一下

脑袋开始各种闪回,可能的错误有哪些,还有哪些步骤是不是错了。

结果没想到的是,有个代码ai们都让我往前放,而且我放完还问了他们,都说可以,真的太傻了。不该相信他们的。虽然我也感觉不对,但是这次能找到整个错误完全是因为我自己去读代码的时候,真的感觉不顺 ,用疑问并质疑的语气问的grok,然后给出了答案,有指定了一个文件使用特定的编译器(因为之前编译成功了,根本就没有想到是这个问题)。然后开始验证~~

可以,可以,编译运行成功,进行测试。可以可以,使用了gpu。然后进行了一点点的旧的api的更换,让日志显示正确的版本信息。ok了,然后后面又开始了半个多个小时的新环境中的编译。成功编译。

测试成功。到此为止吧。
也不知道最后成没成,就放这吧。

相关文章:

  • synchronized与Lock深度对比
  • 随机森林实战:从原理到垃圾邮件分类
  • Windows下Python3脚本传到Linux下./example.py执行失败
  • AdaBoost算法详解:原理、实现与应用指南
  • 极简GIT使用
  • 补4月30日
  • 常见电源的解释说明
  • C#泛型集合深度解析(九):掌握System.Collections.Generic的核心精髓
  • RTOS接口-Semaphores
  • ADG网络故障恢复演练
  • 实现了一个基于寄存器操作STM32F103C8t6的工程, 并实现对PA1,PA2接LED正极的点灯操作
  • 如何提升个人的稳定性?
  • 蓝桥杯比赛
  • 基于BERT类的MRPC语义相似度检测(从0到-1系列)
  • 机箱结构的EMC设计
  • 5月1日日记
  • Window通过虚拟机17安装Ubuntu20.04并安装相关的插件(胎教级教程)
  • 进程与线程:04 内核线程
  • 2025年4月文章一览
  • 杜邦分析法
  • 贵州锦屏县委原书记舒健已任黔东南州政府办主任
  • 解放日报:硬科企业由此迈出“市场第一步”
  • 两部门预拨4000万元支持山西、广西、陕西做好抗旱救灾工作
  • 国务院任免国家工作人员:颜清辉任人社部副部长
  • 医学统计专家童新元逝世,终年61岁
  • “女乘客遭顺风车深夜丢高速服务区”续:滴滴永久封禁两名涉事司机账号