吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1785|回复: 3
收起左侧

[求助] 如何在已有对应的.lib/.a文件而无源代码的情况下,如何恢复.dll/.so文件的符号信息?

[复制链接]
.·.·. 发表于 2019-8-1 17:38
……
想问一下dalao们
您知道如何在已有对应的.lib/.a文件而无源代码的情况下,如何恢复.dll/.so文件的符号信息吗?[悬赏值350]
https://www.52pojie.cn/thread-1000053-1-1.html
尝试在吾爱发悬赏……目测多半要凉
大概是误会了悬赏区的用法吧……

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

问题的背景是这样的
我有一个炼丹用的python包mxnet,每次import mxnet as mx的时候都需要十几秒的时间
理论上……我是知道如何加速mxnet的加载的,比如mxnet加载缓慢的原因是libmxnet.dll里面包含了太多无用的CUDA_ARCH。只要github上拿下源代码,从源代码直接编译一份,保证import在一秒内结束
然而问题是,mxnet会升级,而我不可能每次升级都去mxnet那里下好源代码重新编译。

于是我去nvidia论坛提问,如何去掉.dll里面不需要的ARCH
他们给了一个解决方案,nvprune
然而nvprune是单文件版,不能同时输入两个文件,并且nvprune需要输入的文件是relocatable的——我能拿到的.dll都是被删掉了符号表导致不能relocate的版本,于是nvprune自然而然地失败了。

幸运地是,除了libmxnet.dll,下载的mxnet自带一个应当是包含了全部libmxnet.dll符号表内容的libmxnet.lib——然而问题是,我并不知道如何把这样的.dll跟.lib文件正确地结合起来,生成一个relocatable的.dll文件

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我真正关心的问题是,应该如何削减libmxnet.dll中无用的cuda_arch(对windows以及对linux,因为我不确定日后会不会专门弄个机子装linux来炼丹)
目前能找到的路径是,只要我们能把.lib文件的符号信息正确地送进.dll,我们就能使用nvprune修剪.dll文件,去掉所有无用的结构
最后这个应当是论坛里的大牛所熟悉的范畴,也是我悬赏的内容

(结果……悬赏区都是在求下载……真正的大神果然从来不逛悬赏区吗?)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| .·.·. 发表于 2019-8-7 06:35
想问一下
这个问题是

……
凉了吗?
beiwjk 发表于 2019-8-7 12:38
lib是静态链接库,它还没有链接,所以有符号信息?

没听说过nvprune啊,可以修改dll?
我感觉符号信息一般是编译的时候加上保留符号信息的选项才有的
 楼主| .·.·. 发表于 2019-8-8 00:45
beiwjk 发表于 2019-8-7 12:38
lib是静态链接库,它还没有链接,所以有符号信息?

没听说过nvprune啊,可以修改dll?

nvprune是nvidia的CUDA组件之一,如果不做高性能计算的话,用不到这玩意,没听过很正常
至于符号信息,.lib文件一定有符号信息(否则没办法链接,会出现类似“无法解析的外部符号”这样的错误)
对.dll文件,如果.dll文件带着符号,链接肯定没问题
但对那些没符号的.dll,使用编译器链接的时候应该会出问题,毕竟编译器没办法获取.dll文件的符号信息
大概就是这个原因才有了跟.dll配套的.lib文件——我们可以利用.lib的符号信息链接.dll文件
然而如何让nvprune认这样的.dll
我就不清楚了……
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 02:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表