avx指令集判断的坑
(一)背景
项目中依赖算法同学编写的算法模块,他们在使用avx,sse指令集来提高速度,结果在一些机器上崩溃,导致项目无法发版。
我给他们说,我们项目中使用了谷歌的 libyuv 库,也使用了avx,sse指令加速,在各种环境下都是运行正常的。
后来发现他们对比了 libyuv 的判断指令集的代码发现,没有判断系统,网速搜索了一波,发现了这个文章:开源库中检测当前系统是否支持AVX指令集的一个坑
也就是说,某些系统OS下是不支持的,需要单独判断。
(二)解决
1、判断avx的代码参考 libyuv 的方式来编写,不要自己写,有很多坑。这是发现的一处,可能还有更多的坑没有发现,毕竟libyuv是谷歌开发的开源库,并且十分稳定了。
2、因为算法有几次都因为各种原因导致不稳定,所以我们想了一个办法来解决这个通用的问题,不然每次软件发版都很害怕,一旦出问题了会很麻烦,用户用不了了,也无法升级。对用户体验是一次很大的伤害。我们的开发节奏也完全被打乱了,忙着去救火。
具体的方法是,我们开发了一个Demo的进程,假设就要Demo.exe吧。算法模块每次更新,我们先在Demo.exe中运行,不在我们主进程(用户真实使用的进程)运行,运行一段时间后,如果没有崩溃(崩溃后我们会上传dump供分析),我们就把算法模块给主进程使用。这个相当于在使用用户环境来预跑我们的算法模块。这样即便是算法模块再不稳定,也不会对用户产生实际的影响。
(三)其他
这个过程中因为涉及到指令集的问题,所以推动他们在不同指令集的机器上先验证,没有问题之后再给到我们项目中去使用,之前推动过一次,很难推动,这次他们这么不稳定,终于说服他们了,他们也采购了2台设备来覆盖测试了,虽然不一定完全覆盖全,但是至少风险是降低了不少,因为有些机器是必须崩溃的。
相关文章:
avx指令集判断的坑
(一)背景 项目中依赖算法同学编写的算法模块,他们在使用avx,sse指令集来提高速度,结果在一些机器上崩溃,导致项目无法发版。 我给他们说,我们项目中使用了谷歌的 libyuv 库,也使用了…...
求内推,求明主!
个人资料: 性 别: 男 年 龄: 30岁 户 籍: 湖南衡阳 专 业: 计算机科学与技术 求职意向: Java软件开发工程师/JavaWeb开发工程师 现 居 地: 深圳市龙华新区 自考本科学历,6年工作经验(做过商城,APP,小程序,也研究多个开源案例,开源项目,并提交过PR) 自我评价: 做事积极主动,有责…...
第十三章:约束
第十三章:约束 13.1:约束(constraint)概述 为什么需要约束 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。 为…...
M.2 SSD接口详解
一、M.2简介 M.2接口是一种新的主机接口方案,可以兼容多种通信协议,如sata、PCIe、USB、HSIC、UART、SMBus等。 M.2接口是为超极本(Ultrabook)量身定做的新一代接口标准,以取代原来的mSATA接口。无论是更小巧的规格尺…...
在本地Windows 11 系统的桌面版Docker上搭建PlantUML
文章目录 在本地Windows系统的桌面版Docker上搭建PlantUML简介步骤步骤 1:安装Docker Desktop步骤 2:启动Docker Desktop步骤 3:拉取PlantUML镜像步骤 4:运行PlantUML容器步骤 5:访问PlantUML Web界面 结论参考资料 结…...
mysql的sql_mode模式
1、sql_mode是MySQL中的一个系统变量,用于设置服务器在执行SQL语句时的行为模式。它可以控制服务器的严格性和特性,包括数据校验、日期处理、空值处理等。 下面是一些常见的sql_mode模式及其作用: STRICT_ALL_TABLES:为所有存储…...
chatgpt赋能python:Python编程必备之OpenCV库下载与安装
Python编程必备之OpenCV库下载与安装 作为目前最热门的计算机视觉库之一,OpenCV在人工智能领域中发挥着巨大的作用。而Python作为一门强大的编程语言,在OpenCV的使用上也有其独特的优势。本文将介绍Python如何下载和安装OpenCV库,以及如何引…...
sparkSQL的使用
sparksql只能处理结构化数据 基于rdd构建dataframe对象 from pyspark.sql import SparkSession from pyspark.sql.types import StructType, StringType, IntegerTypeif __name__ __main__:spark SparkSession.builder.appName(test).master(local[*]).getOrCreate()sc spa…...
gitignore的语法
.gitignore 文件是用来告诉 Git 哪些文件或目录不应该被跟踪的。下面是一些常见的 .gitignore 文件语法规则: 空行或以#开头的行将被 Git 忽略,可以用作注释。 星号 * 代表零个或多个任意字符。例如, *.txt 会匹配所有的 .txt 文件。 问号 ? 代表一个…...
长袋除尘器
长袋低压脉冲除尘器是具有先进水平的高效袋式除尘设备,是一种处理风量大、清灰效果好、除尘效率高、运行可靠、维护方便、占地面积小的大型除尘设备。 工作机理 1、过滤原理: 长袋低压脉冲除尘器含尘气体由进风口进入,经过灰斗时,气体中部分大颗粒粉尘…...
HTML+CSS实训——Day02——仿一个网易云音乐的登陆界面
仓库链接:https://github.com/MengFanjun020906/HTML_SX 前言 今天要继续完成我们的音乐软件了,昨天写完了封面,今天该完成开屏广告和登陆界面了。 登陆界面代码 <!DOCTYPE html> <html lang"en"> <head><meta charse…...
css蓝桥杯--电影院排座位
目录 一、介绍二、准备三、⽬标四、代码五、知识点六、完成 一、介绍 随着⼈们⽣活⽔平的⽇益提升,电影院成为了越来越多的⼈休闲娱乐,周末放松的好去处。各个城市的电影院数量也随着市场的需求逐年攀升。近⽇,⼜有⼀个电影院正在做着开张前…...
c++学习——多态
多态 **多态的语法****多态的底层原理图****多态案1——计算机类****纯虚函数和抽象类****多态案例2——饮品****虚析构和纯虚析构****多态案例3—— 电脑组装** 多态是C面向对象三大特性之一 多态分为两类 静态多态:函数重载和运算符重载属于静态多态,复用函数名 动…...
Java SPI机制及原理详解
前言 Java SPI (Service Provider Interface) 是一种重要的组件化方式,它可以让程序在运行时动态地装载一些实现模块,从而增强程序的可扩展性和灵活性。本文将详细介绍 Java SPI 的基本概念、原理以及使用方法。 1. 什么是Java SPI Java SPI 是一种标准…...
不压缩打包layui
手动打包 下载layui源码(当前版本2.6.4),并解压缩 下载地址:layui gitee 安装nodejs(v10.24.1) 下载链接 windows-x64 安装cnpm npm install -g cnpm -registryhttps://registry.npm.taobao.org全局安…...
过去、现在及未来
人生最邪恶的地方在于,只能年轻一次 回顾下我毫无规划的,且已经消耗掉的青春 一:过去 19岁,进入大学,兼职、玩儿、暧昧 20-21岁,初创软件公司打杂、恋爱、暧昧 22、23、24岁,上海ÿ…...
leetcode701. 二叉搜索树中的插入操作(java)
二叉搜索树中的插入操作 leetcode701. 二叉搜索树中的插入操作题目描述 递归解题解题思路代码演示 二叉树专题 leetcode701. 二叉搜索树中的插入操作 原题链接: 来源:力扣(LeetCode) 链接:https://leetcode.cn/problem…...
Docker的容器管理操作
1、创建容器 容器创建:就是将镜像加载到容器的过程。 创建容器时如果没有指定容器名称,系统会自动创建一个名称。 新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。 docker create创建的容器…...
计算机组成原理——中央处理器
文章目录 **一 CPU的功能和基本结构****1 CPU的功能****2 [基本结构](http://t.csdn.cn/bpCt3)****2.1 运算器****2.2 控制器** **二 指令执行过程****1 指令周期****2 指令周期的数据流****2.1 取指周期****2.2 间址周期****2.3 执行周期****2.4 中断周期** **3 指令的执行方案…...
tidb变更大小写敏感问题的总结
作者: sustyle 原文来源: https://tidb.net/blog/2a72bc13 1 背景 近期,我们线上的tidb集群就遇到一个变更忽略大小写的需求,本来以为一个改表工单就解决了,但是业务反馈工单完成后,大小写仍旧敏感&…...
Magisk完整指南:Android设备终极Root与系统定制解决方案
Magisk完整指南:Android设备终极Root与系统定制解决方案 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk Magisk是一款革命性的Android系统定制工具套件,它通过独特的系统无痕修改…...
解锁新可能:ArkData 在智能穿戴设备中的应用
解锁新可能:ArkData 在智能穿戴设备中的应用随着人们对健康生活的重视,智能穿戴设备愈发普及。这些设备能够实时收集心率、步数、睡眠等健康数据,为人们的健康管理提供重要参考。在这一背景下,如何高效管理和利用这些健康数据成为…...
百川2-13B-4bits模型微调实践:提升OpenClaw特定任务准确率
百川2-13B-4bits模型微调实践:提升OpenClaw特定任务准确率 1. 为什么需要微调百川模型? 去年冬天,当我第一次用OpenClaw自动整理电脑上的技术文档时,发现了一个尴尬的问题:模型总是把Python代码片段误判为"待办…...
OpenClaw自动化测试:Qwen3-32B批量执行LeetCode题目
OpenClaw自动化测试:Qwen3-32B批量执行LeetCode题目 1. 为什么需要自动化编程能力测试 作为一名长期关注AI编程辅助工具的技术博主,我一直在寻找能够客观评估大模型编程能力的方法。传统的单次对话测试往往带有偶然性,无法系统性地反映模型…...
2025终极指南:如何快速解锁雀魂全角色皮肤?Mod工具使用全攻略
2025终极指南:如何快速解锁雀魂全角色皮肤?Mod工具使用全攻略 【免费下载链接】majsoul_mod_plus 雀魂解锁全角色、皮肤、装扮等,支持全部服务器。 项目地址: https://gitcode.com/gh_mirrors/ma/majsoul_mod_plus 还在为无法体验雀魂…...
抖音音乐下载终极指南:3步解决批量音频提取难题
抖音音乐下载终极指南:3步解决批量音频提取难题 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾在抖音上听到令人心动的背景音乐,却苦于无法单独保存?或是需要收集…...
用Arduino UNO R3和面包板,从零组装你的第一台meArm机械臂(附电源模块避坑指南)
用Arduino UNO R3和面包板,从零组装你的第一台meArm机械臂(附电源模块避坑指南) 当你第一次看到meArm机械臂灵活抓取物体的视频时,是否也想过自己动手组装一台?作为开源硬件领域的经典项目,meArm以其精巧的…...
火狐浏览器必备:Z-Library Finder扩展安装与使用全攻略(附最新下载链接)
火狐浏览器高效获取电子书资源:Z-Library Finder扩展深度指南 在数字阅读日益普及的今天,电子书资源获取工具成为许多阅读爱好者的刚需。对于火狐浏览器用户而言,Z-Library Finder扩展无疑是一款能够极大提升电子书搜索效率的神器。这款工具专…...
CSS线性渐变实战:5分钟搞定炫酷按钮背景(附完整代码)
CSS线性渐变实战:5分钟搞定炫酷按钮背景(附完整代码) 最近在重构一个企业官网时,产品经理突然要求把所有按钮的纯色背景换成"更有设计感"的效果。面对30多个不同尺寸的按钮,手动设计图片背景显然不现实。这时…...
双模型混搭方案:OpenClaw同时接入百川2-13B与Qwen的实操演示
双模型混搭方案:OpenClaw同时接入百川2-13B与Qwen的实操演示 1. 为什么需要多模型混搭? 去年冬天,当我第一次尝试用OpenClaw自动化处理技术文档时,发现一个有趣的现象:同一个模型在不同任务上的表现差异巨大。Qwen在…...
