当前位置: 首页 > 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(&

相关文章:

  • 力扣2402.会议室 III
  • Spring八股文
  • Windows 下 RabbitMQ 服务无法重装(erlsrv 无法移除和禁用)问题
  • 基于my Batis优化图书管理系统(总)
  • 装饰器模式及应用【理论+代码】
  • 若依 Vue3的前后端分离系统管理 创建
  • 设计模式 16 迭代器模式
  • opencv/c++的一些简单的操作(入门)
  • 大数据处理从零开始————1.Hadoop介绍
  • splunk Enterprise 的HTTP收集器-windows
  • 【PLL】为什么 环路带宽是参考频率的1/10
  • MFC工控项目实例之十添加系统测试对话框
  • 《黑神话·悟空》是用什么编程语言开发的?
  • SQL-函数
  • HTML实现俄罗斯方块
  • 2024/8/30 英语每日一段
  • HTML <template> 标签的基本技巧
  • 一维/二维高斯分布的负对数似然推导
  • 黑客声称窃取海量腾讯数据?数据库加密看这...
  • 零基础Opencv学习(三)
  • 迎接八方来客:全国多地“五一”假期党政机关大院停车场免费开放
  • 辽宁辽阳市白塔区一饭店发生火灾,当地已启动应急响应机制
  • 广东省副省长刘红兵跨省任湖南省委常委、宣传部部长
  • 南京航空航天大学启动扁平化改革:管理岗规模控制在20%,不再统一设科级机构
  • 港理大公布多项AI+医工成果,助港建设国际医疗创新枢纽
  • 安阳一村支书微信群骂村民被警方行拘,辩称对方先“污蔑造谣”