Skip to content
This repository has been archived by the owner on Apr 11, 2024. It is now read-only.

请问一下龙芯论坛上提交的x264是在哪里可以获取? #22

Open
soaringleefighting opened this issue Oct 20, 2021 · 14 comments

Comments

@soaringleefighting
Copy link

龙芯论坛上:x264-0.152-1在Loongnix上发布 [2020-03-03]

@soaringleefighting
Copy link
Author

@soaringleefighting
Copy link
Author

另外请教一下,龙芯3A4000CPU支持mips MSA吗?

@xry111
Copy link
Contributor

xry111 commented Oct 20, 2021

另外请教一下,龙芯3A4000CPU支持mips MSA吗?

支持,我编译 LFS 的时候全程开 -mmsa 没问题。但是上游的 x264 我记得 MSA 相关的内嵌汇编代码写得有 bug 需要处理一下。

(也可能是 x265,记不太清了。)

@soaringleefighting
Copy link
Author

@xry111 感谢即使回复。我这边运行开启MSA优化的x264,报错:非法指令段错误。
龙芯论坛上的x264-0.152-1是开源的吗?在哪里可以获取呢?

@xry111
Copy link
Contributor

xry111 commented Oct 21, 2021

@xry111 感谢即使回复。我这边运行开启MSA优化的x264,报错:非法指令段错误。

非法指令和段错误是完全不同的概念,如果报非法指令可以拿 GDB 看一下具体是哪条指令的问题。

我不确定是不是所有 3A4000 都支持 MSA,应该可以用 lscpu 命令查看。

龙芯论坛上的x264-0.152-1是开源的吗?在哪里可以获取呢?

我不太清楚,我在 3A4000 上编译系统用的是上游软件包。

@soaringleefighting
Copy link
Author

@xry111 感谢答复。

@soaringleefighting
Copy link
Author

@xry111 我这边debug发现,是下面这种指令导致的非法指令问题:
v16u8 store = { 0 };

似乎不能对v16u8/v8i16等类型的变量进行赋值或者取值操作。

@soaringleefighting
Copy link
Author

找到问题原因了,gcc7.5.0开启-mmsa出现illegal instruction,对v16u8类型的变量进行赋值报错。

@soaringleefighting
Copy link
Author

@xry111 @yetist @qmuntal @scylaac 请教一下,如下图是我这边龙芯机器的cpuinfo,从图中ASEs implemented一行可知,没有msa。这个msa选项是从哪里开启呢?
image

@xry111
Copy link
Contributor

xry111 commented Oct 26, 2021

这个msa选项是从哪里开启呢?

可能要重新编译内核并且启用 CPU_HAS_MSA?

@soaringleefighting
Copy link
Author

@xry111 好的,非常感谢!

@soaringleefighting
Copy link
Author

@xry111 再请教一下哈:
我这边银河麒麟操作系统版本是:Linux version 4.4.131-20200710.kylin.desktop-generic (YHKYLIN-OS@Kylin) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6kord1~16.04.4k2) ) #kylin SMP PREEMPT Fri Jul 10 13:48:38 CST 2020

可以说一下你这边用的版本吗?是否是更高版本的系统就支持msa了呢?msa特性跟系统版本有关系吗?

@xry111
Copy link
Contributor

xry111 commented Oct 29, 2021

@xry111 再请教一下哈: 我这边银河麒麟操作系统版本是:Linux version 4.4.131-20200710.kylin.desktop-generic (YHKYLIN-OS@Kylin) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6kord1~16.04.4k2) ) #kylin SMP PREEMPT Fri Jul 10 13:48:38 CST 2020

可以说一下你这边用的版本吗?是否是更高版本的系统就支持msa了呢?msa特性跟系统版本有关系吗?

我用的自己编译的系统,内核是 5.10 的。

MSA 手册说要使用 MSA,必须先使能 config5 寄存器的 MSAEn bit。这项工作必须由内核完成,所以是需要内核支持的。具体到 3A4000 来说,需要使用 torvalds/linux@7507445b1 以后的内核版本 (或者手动合入 MSA 支持),并且在编译内核时启用 CONFIG_CPU_HAS_MSA。对于特定发行版,建议咨询发行版的开发团队。

@soaringleefighting
Copy link
Author

@xry111 非常感谢您的回复,对我的帮助很大,谢谢。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants