【AI系统】昇腾 AI 架构介绍
昇腾 AI 架构介绍
昇腾计算的基础软硬件是产业的核⼼,也是 AI 计算能⼒的来源。华为,作为昇腾计算产业⽣态的⼀员,是基础软硬件系统的核⼼贡献者。昇腾计算软硬件包括硬件系统、基础软件和应⽤使能等。
而本书介绍的 AI 系统整体架构(如图所示),则是对应与昇腾 AI 产业的全栈架构较为相似。因此这里以昇腾计算产业作为例子,来以实际工业界计算产业中的昇腾作为例子进行阐述。其他计算产业如英伟达、寒武纪、摩尔线程等全栈架构基本与 AI 系统也较为相似。
昇腾计算产业介绍
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI 计算基础设施、行业应用及服务,包括昇腾系列处理器、系列硬件、CANN(Compute Architecture for Neural Networks,异构计算架构)、AI 计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链。
其生态包括围绕着昇腾计算技术和产品体系所开展的学术、技术、公益及商业活动,产生的知识和产品以及各种合作伙伴,主要包括原始设备制造商 OEM、原始设计制造商 ODM、 独立硬件开发商 IHV、咨询与解决方案集成商 C&SI、独立软件开发商 ISV、云服务提供商 XaaS 等。
同时,昇腾的合作伙伴体系当中还包含围绕昇腾相关产品对外提供服务交付的服务类伙伴,提供培训服务的人才联盟伙伴,提供投融资和运营服务的投融资运营伙伴等。昇腾高度重视高校的人才培养和昇腾开发者的发展,让高校和开发者成为整个昇腾生态的重要组成部分。
AI 硬件系统
如图所示为华为昇腾系列产品,覆盖边缘推理、云端推理、云端训练三大场景,昇腾计算的 AI 硬件系统主要包括有:
-
基于华为达芬奇内核的昇腾系列处理器等多样化 AI 算⼒;
-
基于昇腾处理器的系列硬件产品,⽐如嵌⼊式模组、板卡、⼩站、服务器、集群等。
昇腾AI产品包含训练和推理产品,主要产品系列如表所示,昇腾训练产品同时支持训练和推理业务,各个组件支持的产品范围请参见组件对应文档的产品支持列表。
产品系列 | 产品型号 |
---|---|
Atlas 200/300/500 推理产品 | Atlas 200 AI加速模块、Atlas 300I 推理卡(型号:3000)、Atlas 300I 推理卡(型号:3010)Atlas 500 智能小站、Atlas 200 DK 开发者套件 |
Atlas 200/500 A2推理产品 | Atlas 500 A2 智能小站、Atlas 200I DK A2 开发者套件、Atlas 200I A2 加速模块 |
Atlas 推理系列产品(配置Ascend 310P AI处理器) | Atlas 300I Pro 推理卡、Atlas 300V 视频解析卡、Atlas 300V Pro 视频解析卡、Atlas 300I Duo 推理卡、Atlas 200I SoC A1核心板 |
Atlas 推理服务器系列产品 | 1. 边缘服务器: |
Atlas 500 Pro 智能边缘服务器支持插入Atlas 300I 推理卡(型号:3000)、Atlas 300I Pro 推理卡、Atlas 300V 视频解析卡、Atlas 300V Pro 视频解析卡使用 |
| Atlas 推理服务器系列产品 | 2. 中心推理服务器:
Atlas 800 推理服务器(型号:3000)支持插入Atlas 300I 推理卡(型号:3000)、Atlas 300I 推理卡(型号:3010)、Atlas 300I Pro 推理卡、Atlas 300V 视频解析卡、Atlas 300V Pro 视频解析卡、Atlas 300I Duo 推理卡使用
Atlas 800 推理服务器(型号:3010)支持插入Atlas 300I 推理卡(型号:3010)、Atlas 300I Pro 推理卡、Atlas 300V 视频解析卡、Atlas 300V Pro 视频解析卡、Atlas 300I Duo 推理卡使用 |
| Atlas 训练系列产品 | Atlas 800 训练服务器(型号:9000)、Atlas 800 训练服务器(型号:9010)、Atlas 900 PoD(型号:9000)、Atlas 900T PoD Lite、Atlas 300T 训练卡(型号 9000)、Atlas 300T Pro 训练卡(型号:9000) |
| Atlas A2 训练系列产品 | Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元、Atlas 300T A2 训练卡、Atlas 200T A2 Box16 异构子框 |
昇腾产品以昇腾AI处理器的PCle(Peripheral Component Interconnect Express)的工作模式进行区分,分为RC(Root Complex)模式和EP(Endpoint)模式,如果PCle工作在主模式,可以扩展外设,则称为RC模式;如果PCle工作在从模式,则称为EP模式。
PCle工作模式 | 支持的昇腾产品 | 工作模式说明 |
---|---|---|
RC模式 | Atlas 200 AI加速模块、Atlas 200 DK 开发者套件、Atlas 200I SoC A1、Atlas 500 A2 智能小站、Atlas 200I DK A2 开发者套件、Atlas 200I A2 加速模块 | 产品的CPU直接运行用户指定的AI业务软件,接入网络摄像头、I2C传感器、SPI显示器等其他外挂设备作为从设备接入产品。 |
EP模式 | 推理产品:Atlas 500 智能小站、Atlas 200 AI加速模块、Atlas 推理系列产品(配置Ascend 310P AI处理器)、Atlas 200I A2 加速模块 | EP模式通常由Host侧作为主端,Device侧作为从端。客户的AI业务程序运行在Host系统中,昇腾产品作为Device系统以PCIe从设备接入Host系统,Host系统通过PCIe通道与Device系统交互,将AI任务加载到Device侧的昇腾AI处理器中运行。 |
EP模式 | 训练产品:Atlas 训练系列产品、Atlas A2 训练系列产品 | 同上 |
在异构计算架构中, 昇腾AI处理器与服务器的CPU通过PCIe总线连接协同工作,我们一般分别称为Device侧和Host侧。
AI 软件体系
如图所示, 从下往上昇腾计算 AI 基础软件体系主要包括有:
-
异构计算架构 CANN 以及对应的驱动、运⾏时、加速库、编译器、调试调优⼯具、开具链 MindStudio 和各种运维管理⼯具等,开放给⼴⼤的开发者和客户;
-
AI 计算框架,包括开源的 MindSpore,以及各种业界流⾏的框架 PyTorch,作为⽣态的有机组成部分。同时,昇腾计算产业秉承开放的⽣态建设思路,⽀持各种计算框架的对接。
-
昇腾应⽤使能 MindX,可以⽀持上层的 ModelArts 和 HiAI 等应⽤使能服务,同时也可以支持第三⽅平台提供应⽤使能服务。
⾏业应⽤是⾯向⼲⾏百业的场景应⽤软件和服务,围绕昇腾计算体系,诞⽣了⼤量优秀的应⽤,⽐如互联⽹推荐、⾃然语⾔处理、视频分析、图像分类、⽬标识别、语⾳识别、机器⼈等各 Iaas Paas, SaaS 种场景。
昇腾计算产业也拥抱各种云服务场景,⽀持 laas,SaaS 等多种云服务模式;同时,端边云协同的能⼒,会原⽣的构建在整个技术架构中,推动昇腾计算成为全场景的 AI 基础设施。
产业价值
以“硬件开放,软件开源,使能合作伙伴”的开放⽣态,推动昇腾计算产业更好地发展。华为聚焦计算架构、处理器和基础软件的创新与研发。通过⾃有硬件和伙伴硬件相结合的⽅式客户提供多样化的算⼒选择。华为基于昇腾系列处理器,通过模组、板卡、⼩站、服务器、集群等丰富的产品形态,打造⾯向“端、边、云” 的全场景 Atlas AI 基础设施⽅案。
同时,华为提供 Atlas 模组、板卡等部件,使能伙伴发展基于 Atlas 部件的智能端侧、智能边缘、服务器、集群等 AI 设备。华为提供开源 AI 计算框架 MindSpore,同时也⽀持业界主流 AI 框架如 TensorFlow、PyTorch、Caffe 、PaddlePaddle 等,同时华为提供模型转换⼯具⽀持主流模型便捷的转换。
昇腾计算产业发展致⼒于将 AI 新技术的红利带到世界的每个⻆落,让⼈⼈充分享受 AI 带来的美好。在 AI 治理上,华为与⽣态、商业伙伴共同倡导向善、包容、普惠和负责任的 AI,为⼈类社会发展带来价值:
-
⽤得起:⽆论何⼈,何时,何地,想⽤就⽤,⽆所不及。
-
⽤得好:从芯⽚到架构,提供安全可靠的产品和服务,赋能合作伙伴和开发者,做好“⿊⼟地”。
-
⽤得放⼼:开放,透明,合作,遵守各国法律法规,保证个⼈隐私和数据安全。
昇腾 AI 系统架构
昇腾计算中的硬件体系、基础软件、开发工具链、AI 计算框架、应用使能等如图所示,跟全书介绍的 AI 系统基本上逻辑吻合。
底层的 AI 芯片和结构体系在昇腾 AI 全栈架构中主要指具体的硬件,覆盖了端边云全场景,支持数据中心,边缘和终端测的灵活部署方式。基础软件则是对应本书中 AI 系统的编译以及 AI 计算架构,使能芯片能力,提供具体的软件计算能力。再往上的框架层则是包含 AI 推理引擎、AI 计算框架。最后上层的应用使能则是针对具体的算法和模型提供的封装等相关的接口。
为满足最大化 AI 开发和部署的灵活性,昇腾整体 AI 架构遵照如下的设计理念。
- 模块化支持端边云场景下的独立部署
- 模块之间具备相互协同能力
- 各个层之间⽀持独⽴演进
基于统⼀的端边云全场景框架下,与合作伙伴⼀起,为最终客户带来的 AI 算⼒平台主要有以四点优势。
超强算⼒
在数据中⼼侧,处理边缘侧汇聚过来的海量数据和满⾜上亿级参数的⼤规模模型的深度学习需求。Atlas 训练卡可为服务器提供320 320 TFLOPS FP16 的⾼算⼒。针对更⼤规模需求,Atlas 集群提供256P ~ 1024P FLOPS FP16总算⼒,在 ResNet-50测试中,基于 ImageNet 数据集,训练时间达到⽬前业界最快的25.9s。在边缘侧,满⾜不同场景的灵活轻 25.9s。在边缘侧,满足不同场景的灵活轻量级部署的同时提供了强⼤算⼒。 Atlas 推理卡单卡算⼒达 88 TOPS INT8,并支持多路全⾼清视频实时分析。
⾼算⼒的同时,能效⽐同样关键。在数据中⼼侧,更⾼的能效⽐可⼤幅降低数据中⼼整体运营成本。具体来说,Atlas 集群作为业界⾸个全液冷 AI 集群,采⽤板级液冷、柜级⻛液换热器等独特设计,使数据中⼼ PUE(Power Usage Efficiency,能源使⽤效率)<1.1,节约⼤量电费,E 级算⼒集群5年节省电费超1亿元。在边缘侧,模组能效⽐达2 TOPS/W,适应低功耗和边缘部署需求。
全栈开放
坚持开源开放原则,⽬的是为了希望构建良好的产业⽣态,按能⼒分层开放。⾯向不同开发者提供不同开发⼯具和套件,使能开发者满⾜在极简开发和极致性能两⽅⾯的需求。
⾯向最上层的业务应⽤开发者,他们把 AI 变成服务,引⼊各⾏各业。对于这类开发者,MindX 开放⽀持上层的 ModelArts 和 HiAI 等应⽤使能服务,同时也可以⽀持第三⽅平台提供应⽤使能服务;MindX 也逐步提供 SDK,SDK 是⾯向同⼀类⾏业场景的完整开发⼯具包和对应的⾏业知识库,让针对⼀类⾏业的开发经验和⾏业知识可以积淀下来,快速复制。SDK 让开发者、ISV 只需极少量代码甚⾄不需要代码就可以实现 AI 的功能。
⾯向 AI 模型开发者,他们专注于算法开发,基于昇腾的开源框架 MindSpore 、PyTorch、 TensorFlow 和 PaddlePaddle 可以⽀持⾼效开发,同时华为提供模型转换⼯具⽀持主流模型便捷的转换到昇腾设备下。
向向算子开发者,提供了 CANN 和 MindStudio 来⽀持底层开发。基于统⼀编程接⼝Ascend C,实现分层开放能⼒。Ascend C 封装了内存管理、AI 任务管理、AI 任务执⾏、业务流、事件、图引擎等通⽤接⼝,开发者只需要掌握⼀套 API,就可以全⾯使⽤昇腾硬件的能⼒。同时,将开放环境与底层硬件相解耦,实现后向兼容,可以最⼤程度的保护开发者的数字资产。
使能应⽤
最⼴泛的⼀类⾏业应⽤开发者通常期望把 AI 当做⼀种服务,直接应⽤在各个⾏业领域中。这⼀类开发者⽆需理解背后⽤神经⽹络模型是什么、AI 框架是什么、资源是如何调度等技术细节。
昇腾应⽤使能 MindX 专⻔为这⼀类的 AI 应⽤开发者⽽设计。深度学习组件 MindX DL 和智能边缘组件 MindX Edge,⽀持 ModelArts、HiAI Service 及第三⽅应⽤使能平台等多种平台,可以将设备资源、算⼒资源统⼀的抽象、管理,被上层平台所调⽤,这样程序只需关注功能⽽不需要关注硬件的底层配置细节。
除此之外,MindX 还提供优选模型库 ModelZoo 和⾏业 SDK。ModelZoo 解决了模型的选型难、训练难、优化难等问题。SDK 是⾯向同⼀类⾏业场景的完整开发⼯具包和对应的⾏业知识库,让针对⼀类⾏业的开发经验和⾏业知识可以积淀下来,快速复制。SDK 让开发者、ISV 只需极少量代码甚⾄不需要代码就可以实现的功能。
端边云协同
端边云协同,使能全场景 AI 开发。在硬件层⾯,端边云设备均采⽤统⼀的华为达芬奇架构,CANN 使能各类形态硬件,如⼿机、摄像机,智能汽⻋,⼩站、服务器、集群等。
在软件层⾯,⽀持⼏乎所有主流操作系统、多种 AI 框架,让开发者⼀次开发,端边云全场景都可以灵活部署。同时,端侧的增量数据可以回传云侧实现进⼀步训练优化。云侧再训练后的优化模型可以直接下发端侧,中间⽆需转换。
在架构层⾯,MindSpore 是⾯向端、边、云全场景的 AI 计算框架,可以实现全场景⾃适应感知与协同,⽐如模型训练好后,可以根据不同硬件形态⾃适应⽣成相应⼤⼩的模型。
MindSpore 还⽀持在端侧直接对模型进⾏轻量训练,更新本地的推理参数;这样既保护了个⼈隐私,又提升了模型精度,实现模型“私⼈订制”。
昇腾未来展望
昇腾计算产业会持续推动多样化异构算力发展。随着 AI 系统架构丰富多样和 AI 应用的大规模推广,昇腾计算产业会持续的增加多种算力支持。在面对不同的应用场景,充分发挥多种算力的协同效果,达到最优的处理效率和性能。
尤其是多种加速器,比如数据与处理和后处理,多种处理器架构和内核架构等,都可能在昇腾计算中发挥算力。由应用驱动的计算架构,将成为昇腾计算发展趋势。随着产业的持续进展,当规模增大到一定程度之后,昇腾计算的底层 AI 系统会进化到更高一层的产品形态。而无论是在数据中心还是边缘场景,甚至是端测场景,高集成度的 SoC 系统会成为主要形态之一。
随着异构计算架构成为主流,可编程性和领域开发语⾔也会成为⼀个重要⽅向。复杂的异构系统,将越来越依赖智能化的编译系统来进⾏性能的优化。⽽昇腾计算体系将围绕以智能编译系统和⾼度⾃动优化的开发体系作为持续的投⼊。基础软件的智能化程度将获得极⼤的提升,通过 AI 来开发 AI 将成为可能。
昇腾计算产业的⽣态将会持续不断丰富。更多的⾼性能算法、计算加速库、SDK、⾏业、开发语⾔和⼯具、开发者、产品形态、合作伙伴,将会随着昇腾计算产业的发展⽽快速推进。
昇腾计算产业将持续推进极简易⽤的开发体系和极致性能的应⽤效果。随着计算成本和开发成本 的下降以及应⽤的快速成熟,在⾏业和⽣活中⼤规模的部署昇腾计算系统将成为很快的现实。
昇腾计算在⾏业中的⼤规模落地,将对社会⽣产⼒产⽣极⼤的推进。我们认为,未来在智能制造、 机器⼈、虚拟⼈、内容⽣成、⾃动和辅助驾驶、移动互联⽹、智慧农业、教育、交通、能源等⾏业,都将受益于昇腾计算产业所带来的智能化⽔平提升。
安全和可信已经成为昇腾计算产业的基本功,未来,安全和可信也依然是坚强的保障。随着⼤规 模的产品化落地,必将出现⼤量的安全挑战,如何应对这些挑战,则会是整个产业的重⼤问题。昇腾计算将把持续的安全和可信 AI 作为基础,确保 AI 可靠的服务于⼈类。
昇腾计算产业作为 AI 的基⽯,将以极简易⽤,让 Al 计算⽆处不在;以极致性能,让 Al 计算⽆所不及。昇腾计算产业将秉承着“把数字世界带⼊每个⼈、每个家庭、每个组织,构建万物互联的智能世界”的理念,与合作伙伴和客户⼀起,为美好的 AI 新时代⽽努⼒。
如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~
相关文章:
【AI系统】昇腾 AI 架构介绍
昇腾 AI 架构介绍 昇腾计算的基础软硬件是产业的核⼼,也是 AI 计算能⼒的来源。华为,作为昇腾计算产业⽣态的⼀员,是基础软硬件系统的核⼼贡献者。昇腾计算软硬件包括硬件系统、基础软件和应⽤使能等。 而本书介绍的 AI 系统整体架构&#…...
D83【python 接口自动化学习】- pytest基础用法
day83 pytest测试用例执行顺序 学习日期:20241129 学习目标:http定义及实战 -- pytest测试用例执行顺序 学习笔记: 测试用例执行顺序 默认执行顺序使用pytest-ordering自定义顺序 pytestrequests练习 import requestsdef test_mobile()…...
浅谈C#库之Memcached
一、Memcached库介绍 Memcached是一个开源的高性能分布式内存缓存系统,它通过将数据存储在内存中来加速动态Web应用。以下是Memcached的一些关键特点: 1、高性能:Memcached使用内存进行数据存储,访问速度极快。 2、分布式&…...
基于Matlab的图像去噪算法仿真
中值滤波的仿真 本节选用中值滤波法对含有高斯噪声和椒盐噪声的图像进行去噪,并用Matlab软件仿真。 (1)给图像加入均值为0,方差为0.02的高斯噪声,分别选择33模板、55模板和77模板进行去噪 Matlab部分代码࿱…...
YOLOv9改进,YOLOv9引入CAS-ViT(卷积加自注意力视觉变压器)中AdditiveBlock模块,二次创新RepNCSPELAN4结构
摘要 CAS-ViT 是一种为高效移动应用设计的视觉Transformer。模型通过结合卷积操作与加性自注意机制,在保持高性能的同时显著减少计算开销,适合资源受限的设备如手机。其核心组件 AdditiveBlock 通过多维度信息交互和简化的加性相似函数,实现了高效的上下文信息整合,避免了…...
Ubuntu 关机命令
在 Ubuntu 系统中,有几种方法可以关机。以下是常用的关机命令及其说明: 1. 使用 shutdown 命令 shutdown 命令是最常用和最灵活的关机方式。它可以设置定时关机,并且可以发送警告消息给所有登录用户。 立即关机 sudo shutdown now定时关机…...
使用Gradle编译前端的项目
使用Gradle编译前端的项目 前言项目结构根项目(parent-project)的 settings.gradle.kts后端项目(backend)的 build.gradle.kts前端项目(frontend)的 build.gradle.kts打包bootJar 前言 最近的项目都是使用…...
React进阶面试题目(三)
如何在 React 中实现滚动动画? 在 React 中实现滚动动画可以通过多种方式实现,以下是一个基本的实现步骤: 构建组件:首先构建需要展示滚动动画的组件,例如一个 About 组件,它包含一些文本或元素。监听滚动…...
每日计划-1129
1. 完成 200. 岛屿数量 class Solution { private:void dfs(vector<vector<char>>& grid,int r,int c){int nrgrid.size();int ncgrid[0].size();grid[r][c]0;if (r - 1 > 0 && grid[r-1][c] 1) dfs(grid, r - 1, c);if (r 1 < nr && …...
杭州网世一站式网络解决方案,助力安邦护卫网络升级改造
随着信息技术的不断进步,浙江台州安邦护卫有限公司现有的网络设备已无法满足其日益增长的业务需求。网络性能瓶颈、安全隐患和管理复杂性等问题逐渐凸显,严重影响了企业的运营效率和服务质量。为了解决这些问题,浙江台州安邦护卫有限公司决定…...
vue3.0 根据富文本html页面生成压缩包(含视频在线地址、图片在线地址、前端截图、前端文档)
vue3.0生成压缩包(含在线地址、前端截图、前端文档) 需求描述效果开始下载插件包基本代码构造 点击下载按钮1.截图content元素,并转化为pdfcanvas putImageData、getImageDatagetImageData 获取指定矩形区域的像素信息putImageData 将这些数据…...
从0开始学PHP面向对象内容之常用设计模式(享元)
二、结构型设计模式 7、享元模式(Flyweight Pattern) 这里是引用享元模式(Flyweight Pattern) 是一种结构型设计模式,旨在通过共享对象来减少内存使用,尤其适用于大量相似对象的场景。通过共享和重用对象的…...
Idea 2024.3 突然出现点击run 运行没有反应,且没有任何提示。
写这篇文章的目的是为了提供一个新的解决思路,因为存在同病不同原因。 如果你进行了1. 检查运行配置 (Run Configuration) 2. 清理和重建项目 3. 清除缓存并重启 IDEA 4.排除kotlin 5.重装idea等等操作之后仍然没有解决,可以试着按一下步骤进行解决。 检…...
拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
作者:陈承 背景 在 2018 年的 2 月,ARMS Java Agent 的第一个版本正式发布,为用户提供无侵入的的可观测数据采集服务。6 年后的今天,随着软件技术的迅猛发展、业务场景的逐渐丰富、用户规模的快速增长,我们逐渐发现过…...
【Linux】开发工具
这篇文章主要涉及sudo指令进行提权的方法,gcc/g的使用并且提及了一些make、makefile sudo指令 在前几篇文章中,我们先后了解了对于不同的角色来说,可以进行不同的操作,而对于新建的普通用户是不能进行权限提升的,这是…...
网络通信基础:TCP/IP、UDP、三次握手、Socket与HTTP协议详解
在网络通信的世界中,TCP/IP、UDP、三次握手、Socket和HTTP协议是不可或缺的基本概念。它们构成了网络通信的基石,对于理解网络编程和设计网络应用程序至关重要。本文将详细介绍这些概念,帮助读者更好地理解网络通信的原理。 首先,…...
(Python)前缀和
前缀和: 前缀和预先计算并存储一系列连续元素的总和,是一种优化技巧,提高算法效率。记录一个数组中各下标位置之前的所有元素的总和,本文对应下标的总和中不含对应下标元素本身。若有需要也可以对应下标记录的总和包含下标本身元…...
【Linux】-操作系统
🔑🔑博客主页:阿客不是客 🍓🍓系列专栏:深入代码世界,了解掌握 Linux 欢迎来到泊舟小课堂 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 一、冯•诺依曼架构ÿ…...
shell echo双引号和单引号区别
echo双引号"" var1"a" var2"b" echo -e "$var1\t$var2"输出: 使用双引号 "" 时,变量会被正确解析。 echo单引号‘’ var1"a" var2"b" echo -e $var1\t$var2输出: …...
嵌入式QT学习第3天:UI设计器的简单使用
Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 Qt Creator 里自带的 Qt Designer,使用 Qt Designer 比较方便的构造 UI 界 面。 在 UI 文件添加一个按钮 左边找到 Push Button,然后拖拽到中…...
Nuxt.js 应用中的 render:response 事件钩子
title: Nuxt.js 应用中的 render:response 事件钩子 date: 2024/11/29 updated: 2024/11/29 author: cmdragon excerpt: render:response 是一个在 Nuxt.js 中与服务器端渲染(SSR)相关的钩子,它会在请求的响应发送之前被调用。这个钩子的目的是让开发者可以在响应发送之…...
Node报错:npm error code ETIMEDOUT
1、报错详细信息 npm error code ETIMEDOUT npm error syscall connect npm error errno ETIMEDOUT npm error network request to https://registry.npmjs.org/express failed, reason: connect ETIMEDOUT 104.16.1.35:443 npm error network This is a problem related to ne…...
领域驱动设计(DDD)模式深度剖析与 C# 实践
一、DDD 模式概述 领域驱动设计(Domain-Driven Design,简称 DDD)是一种软件开发方法论,旨在应对复杂业务领域的软件系统构建挑战。它强调以领域模型为核心,围绕业务领域中的关键概念、规则以及它们之间的关系来组织软…...
2024“蜀道山” RE 部分题解
Map_maze 题目描述 真真假假真真,你能够寻找到最后的终点吗? 附件下载 迷宫生成 v5 是一个长度为 105 的数组,被用作 15x15 的二维网格 int __cdecl sub_4010D0(_DWORD *a1, _DWORD *a2) {_DWORD *v2; // eax_DWORD *v3; // eaxint result; // eax_DWORD v5[1…...
composition
议论文 三个段落 第一段:2-3句话((1)引出背景(2)提出问题(3)过渡句) 第一段 (1)引出背景 As the giant leap of __(society,technology,education,culture,medical se…...
前端开发:构建高质量用户体验的全方位指南(含实际案例与示例)
前端开发:构建高质量用户体验的全方位指南(含实际案例与示例) 在当今数字化时代,前端技术不仅是网页和应用的门面,更是连接用户与数字世界的桥梁。一个高质量的前端开发项目不仅能够提升用户体验(UX&#…...
从Facebook的技术演进看社交媒体的未来趋势
在过去的二十年里,Facebook(现为Meta)从一个大学校园中的社交平台发展成了全球最大的社交媒体网络之一,成功塑造了人们交流、分享和消费信息的方式。作为社交媒体的巨头,Facebook的技术演进不仅推动了平台自身的发展&a…...
Linux下的wlan0控制
WIFI常用的两种模式:STA / AP 1. STA模式:客户端 嵌入式的系统下常常要手动配置wifi,和IP地址才能开始上网,关于STA模式下,常用的wifi配置工具有wpa_supplicant和轻量级的udhcpc客户端。 1.1wpa_supplicant 最小配置…...
常用循环依赖解决方案
常用循环依赖解决方案 Spring框架在4.3版本开始引入了对循环依赖的更好支持,但在此之前,Spring已经提供了一些机制来处理循环依赖。 实际上,Spring从一开始就提供了几种解决循环依赖的方法,只是在后续版本中对这些机制进行了优化…...
HTTPTomcatServlet
今日目标: 了解JavaWeb开发的技术栈理解HTTP协议和HTTP请求与响应数据的格式掌握Tomcat的使用掌握在IDEA中使用Tomcat插件理解Servlet的执行流程和生命周期掌握Servlet的使用和相关配置1,Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网,也称为万维网(www),能够通过浏览…...
instanceof运算符
而instanceof可以精准判断数据类型...
Conda 管理python开发环境
同步发布于我的网站 🚀 故事起因: 在公司使用Requests多任务并行开发时遇到了问题,使用 ProcessPoolExecutor 时不能正常发出网络请求,会卡在网络请求发不出去,但是善于用 ThreadPoolExecutor 时是可以的,纠结了很久,一…...
uniapp关闭sourceMap的生成,提高编译、生产打包速度
警告信息:[警告⚠] packageF\components\mpvue-echarts\echarts.min.js 文件体积超过 500KB,已跳过压缩以及 ES6 转 ES5 的处理,手机端使用过大的js库影响性能。 遇到问题:由于微信小程序引入了mpvue-echarts\echarts.min.js&…...
服务器挖矿
文章目录 一、确定挖矿进程并停止二、查找并清除挖矿相关文件三、检查并修复系统漏洞四、加强安全防护 一、确定挖矿进程并停止 查找挖矿进程 在Linux系统中,可以使用命令如top或htop来查看系统资源占用情况。挖矿程序通常会占用大量的CPU或GPU资源。例如ÿ…...
Flink双流Join
在离线 Hive 中,我们经常会使用 Join 进行多表关联。那么在实时中我们应该如何实现两条流的 Join 呢?Flink DataStream API 为我们提供了3个算子来实现双流 join,分别是: join coGroup intervalJoin 下面我们分别详细看一下这…...
.net XSSFWorkbook 读取/写入 指定单元格的内容
方法如下: using NPOI.SS.Formula.Functions;using NPOI.SS.UserModel;using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric;/// <summary>/// 读取Excel指定单元格内容/// </summa…...
【VUE3】【Naive UI】<NCard> 标签
【Vue3】【Naive UI】 标签 title 属性bordered 属性header-style 和 body-style 属性footer 属性actions 属性hoverable 属性loading 属性size 属性type 属性cover 和 avatar 属性description 属性style 属性 【VUE3】【Naive UI】<NCard> 标签 【VUE3】…...
喜欢发光的自己
Music: 听见下雨的声音 想着写点什么吧...从哪开头好呢?... 好像有很多话想记录下来,但又不知道从哪开头 自上次写博客至现在已经有段时间了。 最近还发生了挺多事,自己的身体又将面临一次考验... 有颗蛀牙,但莫名奇妙的是里…...
mfc110u.dll是什么意思,mfc110u.dll丢失解决方法大全详解
mfc110u.dll是Microsoft Foundation Classes (MFC)库的一个特定版本(版本11.0)的Unicode动态链接库文件。MFC是Microsoft为C开发者设计的一个应用程序框架,主要用于简化Windows应用程序的开发工作。这个框架封装了很多Windows API函数&#x…...
制片人欧阳行远:引领独立电影斩获国际殊荣
随着全球电影市场对独特叙事和多元化题材的需求持续高涨,独立电影再次成为业内外讨论的焦点,尤其是聚焦亲情、成长经历和女性视角的影片,在国际影坛掀起了一股热潮。这一趋势的形成,离不开一些杰出短片的奠基作用,而欧阳行远作为执行制片人,凭借敏锐的行业嗅觉和出色的制作能力…...
《C++ Primer Plus》学习笔记|第7章-函数——C++编程模块 (未完结)
文章目录 7.1 函数的基本知识7.1.1 定义函数7.1.2 函数原型和函数调用 7.2 函数参数和按值传递7.3 函数与数组7.3.5 指针与const7.4 函数和二维数组 7.10 函数指针1. 函数的地址2. 声明函数指针3.使用指针来调用函数 7.12 复习题1. 使用函数的3个步骤是什…...
C/C++ 数据结构与算法【线性表】 顺序表+链表详细解析【日常学习,考研必备】带图+详细代码
1)线性表的定义 线性表(List):零个或多个数据元素的有限序列。 线性表的数据集合为{a1,a2,…,an},假设每个元素的类型均为DataType。其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素…...
详细说说 JDK 的线程池的创建参数
文章目录 1. 概要2. 线程的核心参数2.1.核心线程和最大线程2.2.任务队列2.2.1.ArrayBlockingQueue2.2.2.LinkedBlockingQueue2.2.3.SynchronousQueue2.2.4.PriorityBlockingQueue2.2.5.DelayQueue2.2.7.LinkedBlockingDeque 2.3 keepAliveTime2.4 ThreadFactory2.5 拒绝策略 3.…...
惠普电脑切换默认F1至F12快捷键,FN切换
发现新买的惠普电脑,按F1至F12发现是快捷功能键,而按fnF1至F12才是windows的功能键和正常我自己使用的电脑刚好相反,实在太不方便了。 解决办法需要进入biso里面去把功能键模式选中给关掉,才能恢复回来...
RabbitMQ在手动消费的模式下设置失败重新投递策略
最近在写RabbitMQ的消费者,因为业务需求,希望失败后重试一定次数,超过之后就不处理了,或者放入死信队列。我这里就达到重试次数后就不处理了。本来以为很简单的,问了kimi,按它的方法配置之后,发…...
[巅峰极客 2021]签到
[巅峰极客 2021]签到 给了我们好多表情,真的是一脸懵逼 注意给我们的关键词 GAME 现在还不知道是什么意思我们去试着解开一下 用这个emoji表情解密器,这里我找了好久才找到一个 emoji-aes 这里的Key值就是GAME 运行后出现flag NSSCTF{10ve_4nd_Peace…...
CrystalDiskInfo:硬盘健康监测工具简介和下载
原论坛给你更好的阅读体验:CrystalDiskInfo:硬盘健康监测工具简介和下载 | 波波论坛 引言 在日常使用电脑时,硬盘的健康状态对于系统的稳定性和数据的安全性至关重要。硬盘出现故障可能会导致数据丢失,严重时甚至会使整个系统无…...
循环神经网络(RNN)详解
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
vue基础之3:模板语法、数据绑定
欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…...
Ubuntu通过脚本启动多个可执行文件
Ubuntu通过脚本启动多个可执行文件 在 Ubuntu 中,可以通过一个脚本启动多个可执行文件,同时支持顺序执行、并行执行或特定条件下的执行。以下是实现的详细方法: 1. 创建脚本文件 首先,创建一个脚本文件,例如 start_p…...