【玄铁杯第三届RISC-V应用创新大赛】移植过程的初步尝试
[复制链接]
1、虽然最初认为stable diffusion算法移植到RISC-V64架构时,可能会遇到以下问题:1. 架构差异:RISC-V64架构与其他架构(如x86)之间存在指令集和寄存器等方面的差异。需要对算法进行适当的修改和调整,以适应RISC-V64架构的特点。2. 编译器支持:RISC-V64架构可能需要使用不同的编译器和工具链来进行开发和编译。需要确保所使用的编译器能够正确地处理算法中的代码。3. 优化和性能:RISC-V64架构可能具有不同的性能特征和优化策略。需要对算法进行适当的优化,以充分利用RISC-V64架构的优势,并提高算法在该架构上的性能。4. 内存模型:RISC-V64架构可能具有不同的内存模型和访存方式。需要确保算法在RISC-V64架构上正确地处理内存访问和同步操作。5. 并行化和向量化:RISC-V64架构支持SIMD(Single Instruction, Multiple Data)指令集扩展,可以进行向量化操作。可以考虑对算法进行并行化和向量化的优化,以提高算法的性能。需要根据具体情况进行适当的调整和修改,以确保稳定扩散算法能够在RISC-V64架构上正确运行并达到预期的性能。
2、但是,在移植过程中,查看了一下setup文件,发现里面有几个依赖并没有,然后面就花费了一周的时间去了解这个torch是如何才能够成功安装的?
首先:有可能是网络问题,如果开发板不能连外网的话,似乎很多资源都不能顺利下载,期间要感谢群里面的大佬给出了指点,虽然其中道理还不是很清楚,涉及到之前学过的局域网等理论,但是最终还是要自己不断的尝试才可以。
其次:我看了一位大佬发给我的一片文章,里面谈到如何进行torch的移植,可惜的是,当我根据github主页的描述和相关信息对 ,这个里面的sleef进行build的时候,发现自动生成的sleef.h文件并不能很好的发挥作用,原因是里面的很多函数声明并没有自动的添加进去,考虑到这些都应该是跟cmakelist.txt这个文件里面的规则有关,但是要是修改这个文件的话,也是需要从头熟悉起来的。
最后:在Experimenting with PyTorch on RISC-V这篇文章相关的链接中找打了关键的资源,但是如果不能解决上外网的问题,似乎就只能采用本地build所有的文件,但是这是个耗费时间,却意义不大的事情,好在文章谈到了在指定的链接中可以找到对应的torch版本。
总之,在这几天的时间里面,我还是有一些进步吧,虽然并没有从头build torch,但站在巨人的肩膀上面还是将移植stable的目标向前推进了一步。不过这两天又遇到新的问题,sd卡空间小,并且系统空间也不够用了,没办法直接本地安装torch了。
所以下面的事情就是找到一个比较大一些的sd卡,进行分区,让这部分空间可以用来安装torch,如果这个没问题的话,就可以进入下一阶段了。
|