- 博客(72)
- 收藏
- 关注
原创 自研SP600系列网卡驱动跟麒麟V10 SP3 2403配套关系
2、麒麟V10 SP3 2403 Release 20240426 iso镜像默认内核 4.19.90-89.11.v2401不包含自研SP600(如SP681)网卡驱动,需要从support下载对应网卡驱动rpm包手动安装驱动(如果没有,需要在对应内核的系统上使用网卡驱动源码编译出所需的rpm包或ko驱动,然后再安装);,手动下载对应内核版本号的所有rpm包并上传到系统中执行yum -y localinstall *.rpm升级内核(重启OS生效)即可默认包含自研SP600系列网卡驱动;
2026-10-19 22:23:55
167
原创 Linux系统下磁盘扇区512n、512e和4kn的区别
类型物理扇区大小逻辑扇区大小技术本质兼容性512n512 字节512 字节传统原生格式,无模拟层完全兼容所有旧系统512e4096 字节512 字节仿真模式(Emulation),固件透明转换向下兼容512字节系统,主流过渡方案4kn4096 字节4096 字节原生模式(Native),无转换层仅支持现代操作系统(Linux 2.6.31+)关键点:扇区类型由硬盘硬件决定,操作系统仅能识别和适配,无法更改物理结构。行业趋势。
2026-10-19 22:23:25
192
原创 AMD uProf 工具采集微架构特征使用介绍
仍有一点需要注意是在按pid号采集数据时,它是无法采集Core事件外的事件的,这也与devkit、kperf工具一致。这样就生成了一个可以运行html的一系列组件,点开后如下图所示,基于与perfstudio的展示一致。AMD公司自身开发了AMDuprof工具,用于性能分析,下面简单介绍AMDuprof工具的使用。成了一个可以运行html的一系列组件,点开后如下图所示,基于与perfstudio的展示一致。查看帮助,AMDuProfPCM -h 可以看到如下命令,我们重点关于下面用红框圈住的命令。
2026-10-19 22:23:02
73
原创 S920X00机器CentOS 7.6下大批量容器执行docker exec卡顿
同时发现一个patch与此相关,https://github.com/moby/moby/pull/45625,合入patch可以改善卡顿现象,但是无法完全解决,只能说从docker 1.13到26.1.4中间版本太多了,这个版本是24.06合入的,尝试在24.01上验证也是OK的。(1)实验室部署镜像环境,使用1.13版本docker,创建54个docker容器,运行脚本循环调用docker exec命令,出现docker exec命令卡顿。docker老版本问题,升级docker版本解决问题。
2026-09-21 00:01:27
197
原创 鲲鹏服务器安装系统后重启无法进入系统
1. 4.19内核自带的raid卡驱动不支持3908 RAID卡,所以在安装系统时需要使用dd的方式升级raid卡驱动,现场验证使用dd升级raid卡驱动后,在系统安装界面可以识别硬盘,但是安装完成、重启后无法进入系统。iso镜像里的dracut打包工具有问题,无法把extra目录下升级的驱动ko打包进来,只能打包inbox驱动,导致linux dd安装系统后,initramfs里的驱动没有更新,无法识别raid卡和硬盘。1、安装系统后,手动升级initramfs里的raid卡驱动,确保可以进入系统。
2026-09-20 23:59:08
239
原创 Double Free问题定位
a、一般程序都是通过so的方式加载相关的依赖,便于运行过程中替换和问题定位,但缺点就是在集群模式下,每一个节点都需要保证加载一样的so文件,缺点是如果某一个节点的so文件不正确或缺少也需要每个节点排查;实际运行环境采用加载.a的方式,可以快速部署到不同的集群上,不需要同步上传累赘的组件so,并且能报错每个节点使用的版本一致,缺点是定位麻烦,每次修改都需要重新构建编译。盘。
2026-09-15 23:23:47
188
原创 基于鲲鹏服务器的金仓数据库调优参考实践
一共部署2台服务器进行组网,其中1台为鲲鹏920新型号服务器,采用物理机部署的方式部署金仓数据库,另外1台服务器作为独立压测机,与数据库服务器通过高速网络互联。其上部署的BenchmarkSQL测试套件将模拟前端业务压力,向金仓数据库发起连续、并发的TPC-C标准负载,以检验其在真实业务场景下的tpmC吞吐量、响应时间及稳定性。
2026-09-15 23:04:52
240
原创 S920X00机器CentOS 7.6下大批量容器执行docker exec卡顿
同时发现一个patch与此相关,https://github.com/moby/moby/pull/45625,合入patch可以改善卡顿现象,但是无法完全解决,只能说从docker 1.13到26.1.4中间版本太多了,这个版本是24.06合入的,尝试在24.01上验证也是OK的。(1)实验室部署镜像环境,使用1.13版本docker,创建54个docker容器,运行脚本循环调用docker exec命令,出现docker exec命令卡顿。docker老版本问题,升级docker版本解决问题。
2026-09-11 22:36:57
156
原创 一次应用被自动绑核的问题定位记录
可以看到只有 bash 被绑核了,所以 redis-benchmark 被绑核了,而 bash 的父进程没被绑核,说明 不是系统配置了什么,而是 bash 运行时被修改了亲和性。所以怀疑是不是有什么 配置文件,强行限制了核的范围,又尝试了下taskset是可以绑的。报错的信息表示,cpu0 超出了范围,这显然是不对的,这环境有上128个核。所以是因为numactl 自身亲和性被限制了,所以绑不了核。的逻辑,其实显示的是 numactl 本身的亲和范围。我尝试用numactl 绑核,但失败了。
2026-09-03 23:14:38
138
原创 我和容器有个约会:浅析HPC容器的前世今生
高性能计算应用属于交叉学科,专业性强,懂应用的不懂计算机,懂计算机的不懂应用是非常常见的现象,而且HPC算法晦涩难懂,架构设计复杂多样,导致调优难度普遍较高,2021年的图灵奖颁给了美国计算机科学家 Jack J. Dongarra,他是lapack、atlas等数学库的作者,因为他在数值算法和库方面做出了开创性的贡献,使得高性能计算软件能够跟上四十多年来的指数级硬件更新,说明业界普遍都在追求非常极致的性能、性价比与能耗比,仅是提高很少量的百分点都能为企业带来巨大的经济效益。请在评论区写出你的感受。
2026-09-03 23:13:46
172
原创 使用命名空间实现网络隔离与流量测试
命名空间是Linux内核提供的一种隔离机制,能够将系统资源分割成多个独立的视图。网络命名空间允许每个命名空间拥有自己独立的网络设备、IP地址、路由表、端口范围等网络资源,从而实现网络环境的完全隔离。
2026-09-03 23:13:14
190
原创 使用动态内存一致性工具自动完成上证信息所弱内存序问题排查案例
采用鲲鹏DevKit命令行工具包中的 dr-check 动态内存一致性检测功能。该工具无需修改源码,通过动态执行目标程序,在程序运行时记录共享内存的地址相关读写操作,能够精准检测出因弱内存序导致的数据竞争问题,并给出插入内存屏障(如dmb指令)的具体建议。工具获取。
2026-09-03 23:12:43
178
原创 使用DevKit精度分析工具定位LAMMPS应用多个算例的精度问题案例
为了修复此问题,找到文件src/MAKE/Makefile.serial(若编译时使用的不是make serial而是make mpi,同目录下有对应的Makefile.mpi文件),在其第10行的CCFLAGS后面添加选项-ffp-contract=off。在可见的输出中,鲲鹏服务器的计算结果与x86的相同,可再与软件内deposit文件夹中给出的样例输出文件log.27Nov18.deposit.atom.g++.1对比,结果也是相同的。运行算例时若提示缺失,可按提示安装对应的模块后重新编译。
2026-09-03 23:12:13
199
原创 灵渠测试工具-urma_perftest
UB_URMA 指标测试流程分为端口准确性校验和报文数准确性校验两部分。首先通过 KSYS 启动 UB_URMA 指标采集,并使用。测试过程中使用 KSYS 采集 UB_URMA 指标,并在必要时使用。,否则可能提前清零寄存器,导致 KSYS 采集值偏小。原始数据,判断 UB_URMA 指标采集是否准确。因此测试时要注意采集顺序,避免 KSYS 和手工。此方案中,不建议在 KSYS 采集周期内手工执行。读取寄存器后会清零,建议测试时按以下方式执行。获取设备 UP 状态端口,校验采集结果中的。
2026-09-02 23:26:20
171
原创 连接数资源正常情况下,数据库无法连接,报错no_free_proc_is_available
因为瞬时大量的写操作产生了一批处于COMMITTING状态的元组,此时恰巧出发autovacuum,由于开启了autosave产生了大量子事务,因此autovacuum的执行时间很长,导致占用ProcArray Lock的时间很多。使用top观察主库所有线程的CPU使用情况,发现有两个autovacuum线程跑满了两个核的CPU,使用pstack查询其堆栈,表明其正在判断事务状态,根据代码,处于此状态时,autovacuum会获取ProcArray Lock;目前问题阻塞,需解决后重新开始平稳运行。
2026-09-02 23:25:49
173
原创 鲲鹏统一并行加速库KUPL--众核并行能力介绍
/ Step1:将数组操作定义成函数,函数类型符合所示要求 void axb_func(kupl_nd_range_t *nd_range, void *args, int tid, int tnum) { for (int i = nd_range->nd_range[0].lower;数组计算d[] = a[] * b[] + c[]可以拆分成两个任务,分别是计算d[] = a[] * b[]和d[] += c[],其中后一个计算任务依赖前一个计算完成。
2026-09-02 23:25:18
177
原创 鲲鹏统一并行加速库KUPL——众核并行调度介绍
对于单一的调度机制不能适应所有的问题类型, KUPL 引入了多层调度的概念,提出了算子内并行和算子间并行的调度逻辑,弥补了单一调度机制存在的缺陷。同时分层调度的模式能很好的适配算子内并行和算子间并行的调度逻辑,外层调度器专门应对算子内并行需要低延迟、高性能的特点,内层调度器处理算子间并行更灵活和高效,也能充分利用多核资源实现负载均衡。其核心原理是在 static_mq 的静态多队列基础上,引入了工作窃取机制,允许空闲的执行器从其他执行器的队列中窃取任务,从而实现动态的负载均衡。
2026-09-02 23:24:47
225
原创 鲲鹏统一并行加速库KUPL--异步数据拷贝
CUDA异步数据拷贝实现了数据传输操作在指定的CUDA流中异步执行,通过流机制实现计算与数据传输的重叠,提升GPU利用率,避免等待数据传输时的空闲。二维数据拷贝,即为两个维度上的数据的拷贝,如下图所示,将width*height大小的数据,从src拷贝到dst位置,其中src数据每拷贝width长度,间隔spitch-width长度;如下图所示,当计算任务©与数据拷贝任务(A->B)不存在数据依赖时,在单核情况下,可通过异步数据拷贝任务与计算任务的并行,实现异步数据拷贝与计算相互隐藏。
2026-09-02 23:24:16
226
原创 鲲鹏统一并行加速库KUPL--矩阵编程MMA
## 什么是tiled_mma。store_atom_shape是KUPL用于扩展store_atom_ops的Shape尺寸,其是一个二维尺寸,分别表示M/N存储形状上扩展的大小,基于该方式可以扩展store_atom_ops原子方法存储的形状从而实现能力的扩展。mma_atom_shape是KUPL用于扩展mma_atom_ops的Shape尺寸,其是一个三维尺寸,分别表示M/N/K计算方向上扩展的大小,基于该方式可以扩展mma_atom_ops原子方法计算的形状从而实现能力的扩展。
2026-08-31 23:52:24
195
原创 鲲鹏通信组件HMPI之参数使用篇
更多 UCG 算法细节可参考其 代码仓库 ,具体接口算法位于 src/planc/ucx/ 目录下(如 allreduce.c 包含 MPI_Allreduce 的算法实现)。
2026-08-31 23:51:40
173
原创 鲲鹏数学库FFT与_NumPy的兼容性适配及实践总结
所有面向用户的函数( fft 、 ifft 、 rfft 、 irfft 、 hfft 等)均定义在 numpy/fft/_pocketfft.py 中。该层负责处理参数标准化,包括:轴归一化:将用户指定的 axis 转换为内部使用的正整数索引,并支持负数轴。长度调整:若 n 大于输入数组在目标轴的长度,自动进行零填充(zero-padding);若 n 小于原长度,则执行截断。规范化:根据 norm 参数计算前向/反向变换的缩放因子,统一在变换后施加。
2026-08-31 23:51:16
169
原创 鲲鹏数学库(KML)天元直接法求解器(DSS)开发实践
include “kml_solver.h”#### 稀疏矩阵 CSR 格式示例采用 CSR(压缩稀疏行) 格式存储稀疏矩阵:int n = 8;// 矩阵阶数 int ia[9] = {0, 2, 4, 6, 7, 8, 10, 12, 14};字段说明 :section: 鲲鹏数学库(KML)天元直接法求解器(DSS)开发实践 基于鲲鹏社区官方示例《示例1-求解器函数-DSS-函数定义(单机版)》整理,演示 KML 直接法稀疏求解器的完整开发流程与关键实践。
2026-08-31 23:49:38
218
原创 鲲鹏计算平台矩阵乘算子SGEMM优化实践——下篇
鲲鹏计算平台矩阵乘算子SGEMM优化实践分为上下两篇,记录了在鲲鹏计算平台上,从最朴素的三重循环矩阵乘法出发,经过 6 个阶段逐步优化,最终实现 30+倍性能提升 的完整过程。所有代码基于 C 语言 + ARM intrinsics,矩阵存储采用列主序 (Column-Major),编译器使用华为毕昇编译器 (BiSheng)。本文为下篇,续写SGEMM优化实践内容,上篇请参考 鲲鹏计算平台矩阵乘算子SGEMM优化实践——上篇。
2026-08-31 23:49:07
231
原创 鲲鹏计算平台矩阵乘算子SGEMM优化实践——上篇
3: load B[k] 一次 i=1: load B[k], load A[1,k] load A[0,k], A[1,k], A[2,k], A[3,k] i=2: load B[k], load A[2,k] B 只加载 1 次,被 4 次乘法复用 i=3: load B[k], load A[3,k]
2026-08-19 21:29:47
217
原创 鲲鹏计算平台_KuDNN_适配_oneDNN_实践
适配的第一步是让 oneDNN 的构建系统能够识别并链接 kuDNN。## 2.1. 引入KuDNN在 oneDNN-3.4/cmake/KuDNN.cmake 中,通过 find_package 寻找 KuDNN 及其依赖(如 KBLAS)。if(kdnn_cmake_included) return() endif() set(kdnn_cmake_included true) include(“cmake/options.cmake”) if(NOT DNNL_TARGET_ARCH STREQUAL
2026-08-19 21:29:30
225
原创 鲲鹏920新型号彩页V2.4-4U2P.pdf
高能效 支持CPU动态调频调压,服务器动态节能 首家获得DC TECH 5A认证 和CQC VII 最高级认证。32个DDR5 DIMM,4800MT/s及以上 最大内存4TB(配置128GB内存)2*鲲鹏920 处理器,支持64核等,基准频率支持2.6GHz、2.9GHz等。大内存:32个DDR5 DIMM,速率支持4800MT/s及以上。PCIPC异构安全能力,支持PCIe设备直通安全域,数据。国密安全:内置国密SM2/SM3/SM4加解密加速引擎。RAID 0/1/10/1E/5/50/6/60等。
2026-08-19 21:27:18
279
原创 鲲鹏920新型号彩页V2.4-2U4P.pdf
高能效 支持CPU动态调频调压,服务器动态节能 首家获得DC TECH 5A认证 和CQC VII 最高级认证。64个DDR5 DIMM,4800MT/s及以上 最大内存8TB(配置128GB内存)大内存:64个DDR5 DIMM,速率支持4800MT/s及以上。4*鲲鹏920 处理器,支持64核等,基准频率支持2.9GHz等。高可靠 支持内存镜像,CPU核故障在线隔离 智能故障预测。PCIPC异构安全能力,支持PCIe设备直通安全域,数据。RAID 0/1/10/1E/5/50/6/60等。
2026-08-19 21:25:36
273
原创 鲲鹏920新型号彩页V2.4-2U1P.pdf
高能效 支持CPU动态调频调压,服务器动态节能 首家获得DC TECH 5A认证 和CQC VII 最高级认证。1*鲲鹏920 处理器,支持80核、64核等,基准频率支持2.6GHz、2.9GHz等。16个DDR5 DIMM,4800MT/s及以上 最大内存2TB(配置128GB内存)大内存:16个DDR5 DIMM,速率支持4800MT/s及以上。PCIPC异构安全能力,支持PCIe设备直通安全域,数据。全链安全:CPU+BMC的双链安全启动;RAID 0/1/10/1E/5/50/6/60等。
2026-08-19 21:25:06
290
原创 揭开HPC应用的神秘面纱
说起高性能计算(High Performance Computing,缩写 HPC),很多人第一个想法就是动辄亿亿次浮点运算的“超级计算机”,国家花这么大代价做出来的机器干啥用呢,其实大到天气预报、飞机制造、新冠疫苗研发,小到唐氏筛查、《熊出没》渲染,到处可见HPC的身影,就拿最近的北京冬奥会来说,其成功举办就脱离不了济南超算对空气质量预报准确及时的预警,当然HPC也可以离我们很远,举几个戈登贝尔奖的栗子(被誉为“超级计算应用领域”内的诺贝尔奖)。步骤5:一键下载并安装依赖(大概6分钟左右)
2026-08-17 21:07:55
181
原创 高性能模板库Eigen架构分析及性能优化实践
/新增部分: struct TensorEvaluator< const TensorAssignOp< Eigen::TensorMap<PlainObjectType, Options_, MakePointer_>, const Eigen::TensorCwiseUnaryOp<Eigen::internal::scalar_tanh_op, ArgType>>, Device> { //…res = svdup_n_f32_m(res, cmpSpNeg, -1.0f);return res;
2026-08-17 21:07:24
207
原创 高性能计算之MPI——集合通信漫谈
为了更好地量化这个过程,假设一次发和收的时间为 t 在上面过程中,我们完成了: Step 1: rank 0 -> rank 1 Step 2: rank 0 -> rank 2 Step 3: rank 0 -> rank 3 三次的发包和收包的过程,所以耗时一共是 3t 既然大家发送和接受的信息是一样的,那么在进程1接受到进程0发的信息时,能不能用作发包呢?我有位从事HPC应用优化且计算机科班出身的同事告诉我:他们去HPC相关的学术会议听报告,最怕听到应用的人讲报告,全是满屏的公式,连符号都看不懂。
2026-08-17 21:06:59
215
原创 高性能计算之MPI——常见问题总结
多节点运行的时候,由于报错提示太多只关注后面的错误提示,但是后面的错误提示一般都是最开始的错误提示引起的,所以关注最开始的错误提示很重要。其中,第三步的参数第一个为设置下一次的超时时间是上一次的倍数,第二个参数为设置第一次超时时间设置,第三个参数为将默认的超时阈值设置为30s。第二步、如果选择的通信类型是rc,使用RoCE网络,可能是RoCE网络没有配置,网口没有指定IP地址,通过show_gid命令检查网口有没有配置IP地址,下图为有IP地址的show_gid打印提示,无ip地址的缺少一个。
2026-08-17 21:04:43
196
原创 高性能计算之MPI——10分钟超越99%的程序员
相比串行版本的程序而言,多进程程序仅仅多了一个头文件<mpi.h>和两行代码:MPI_Init和MPI_Finalize. 这两个函数非常容易理解: MPI_Init,就是Initialize. (初始化) MPI_Finalize,就是Finalize. (结束) 这相当于告诉计算机:MPI_Init到MPI_Finalize这段代码是MPI并行程序,所有MPI调用必须落在这个区间内。在这个改造过程中,你会发现:那些晦涩难懂的MPI概念是如何被引入到MPI标准中的,而且这个引入的过程很丝滑。
2026-08-17 21:04:11
217
原创 高性能计算:从入门到_放弃_
总结 我的主管说:HPC有门槛,但他给人培训HPC时发现:没接触过HPC的人学HPC是会上瘾的。秃头不是我说的,是我这10年的HPC经验沉淀下来的锃亮的脑袋说的。当然天气预报程序的运行,肯定不是在咱们的笔记本或家庭台式机上,而是运行在十几甚至几十台服务器(server)组成的集群(cluster)或者工作站(workstation)上,有的甚至是要运行在算力更强大的超级计算机上。随着HPC的不断发展,人们逐渐发现:在不少HPC应用中,A矩阵往往不是稠密的,而是稀疏的(像程序猿的头发一样orz)
2026-08-16 22:55:37
155
原创 常见内存性能测试工具学习记录
1、mbw的memcpy 类似于 lmbench的bcopy2、mbw的dumb 类似于 stream的copy 类似于 lmbench的fcp(粒度不同)
2026-08-16 22:55:06
242
原创 wrf精度调优介绍
为了获取更高的浮点计算精度,设置-fp-model=precise,保证运算过程中浮点数是值安全的(value-safe),即编译器不会进行在数学逻辑上相等的运算转换,如前文提到的A + B + C转换为A + ( B + C )。按照数学运算结果sum1应该等于sum2,问题出现在(b + c)计算上,c(-0.00000000149012)约等于b(0.1)的ULP的五分之一,按照舍入到最近的数的方式,c将会被舍去,(b + c) = b,因此sum2 = a + b = -0.1 + 0.1= 0。
2026-08-16 22:54:32
211
原创 Velox性能调优需求分析报告.docx
Velox 是一个可复用的高性能数据处理库,被广泛应用于 Presto、Spark(通过 Gluten)等查询引擎中。随着数据湖仓一体架构的普及,用户对查询实时性的要求日益严苛。在近期的性能压测中发现,部分复杂查询存在显著的性能瓶颈,主要体现在 CPU 利用率不均、I/O 等待时间长以及 GPU 资源未能充分利用等方面。### 1.2 调优目标本次性能调优旨在通过系统化的分析与配置调整,实现以下量化目标:提升吞吐量:在 TPCDS99 基准测试中,将99条复杂查询的性能提升至领先AMD某型号18%以上。
2026-08-16 22:53:55
232
原创 SLURM调度器(一)
步骤3 :执行以下命令在master、testnode1和testnode2节点下创建“/var/spool/slurm/ssl”目录、“/var/spool/slurm/d”目录和“/var/log/slurm”目录。步骤6 :执行以下命令在master节点上,将master节点的“/etc/slurm/slurm.conf”拷贝到testnode1和testnode2节点, 确保所有节点的slurm.conf内容是相同的。所有 Slurm 守护进程、命令和 API 函数均有手册页。
2026-08-16 22:53:24
203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅