相关疑难解决方法(0)

为什么内核不能使用 SSE/AVX 寄存器和指令?

StackOverflow 的这篇文章有这个

在某些环境中,对某些指令或使用某些寄存器存在限制。例如,在 Linux 内核中,通常不允许使用 SSE/AVX 或 FP 寄存器。因此,大多数优化的 memcpy 变体无法使用,因为它们依赖于 SSE 或 AVX 寄存器,并且在 x86 上使用了基于 mov 的纯 64 位副本。对于这些平台,使用 rep movsb 可以在不破坏 SIMD 代码限制的情况下获得优化的 memcpy 的大部分性能。

为什么 x86_64 内核不能使用 SSE/AVX?如果它会使memcopy()速度更快,似乎应该允许它。我只是在学习 Intel Assembly,当我看到这个评论时,我特别想学习 SEE/AVX。

对 Linux 内核中的 SSE/MME 和 AVX 优化特别感兴趣。

kernel intel optimization syscalls assembly

17
推荐指数
1
解决办法
6282
查看次数

标签 统计

assembly ×1

intel ×1

kernel ×1

optimization ×1

syscalls ×1