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

在内核态使用 intel avx2 加速内存操作

判断 page 是否为零页,相比使用非 simd 指令性能提高很多,

bool page_is_zero_avx2(char * vaddr)
{
    int avx2_num = PAGE_SIZE / 32;
    bool zero = true;
    unsigned int rc1, rc2;
    int i = 0;

    kernel_fpu_begin();
    
    asm volatile("vpxor %ymm0,%ymm0,%ymm0");

    for (i = 0; i < avx2_num; i += 2)
    {
        asm volatile("vmovdqa %0,%%ymm1" : : "m" (vaddr[i * 32]));
        asm volatile("vpcmpeqb %ymm0,%ymm1,%ymm2");
        asm volatile("vpmovmskb %%ymm2, %0" : "=r" (rc1));

        asm volatile("vmovdqa %0,%%ymm1" : : "m" (vaddr[(i + 1) * 32]));
        asm volatile(&


http://www.mrgr.cn/news/16640.html

相关文章:

  • ChatGPT的全面写作革命:我们迎来效率飞跃还是创造力危机?
  • 天童教育:让孩子时常感觉被深爱
  • 大模型种草书籍——BERT基础教程:Transformer大模型实战,看完头皮发麻!
  • 让自家的智能语音助手实现todo任务的添加
  • 欧拉 函数
  • 最简单监控方案:域名、证书 SSL、服务器全搞定!发送钉钉告警消息
  • A\B求解将 B转换到 A 的坐标系中的变换
  • java基础开发-xstream解析xml
  • 【智能排班系统】Hibernate Validator 参数校验
  • C++11 新特性基础
  • MySQL事务管理与并发控制:深入理解ACID特性
  • 如何选到好的宠物空气净化器,用哪款宠物空气净化器比较好?
  • Go入门:gin框架极速搭建图书管理系统
  • C语言习题~day38
  • python实战三-提取Word数据到Excel
  • opencv之图像平滑处理
  • 如何将线程绑定到特定的CPU核
  • PMP错题总结(十六)
  • ElementPlus下拉框实现可选择,可输入
  • Llamaindex RAG实践