LWN:NVIDIA在追求能一次分配1GB的连续内存空间

NVIDIA Jetson TX2 System-on-Module中文简介 配置: Pascal GPU + ARMv8 + 8GB LPDDR4 + 32GB eMMC + WLAN/BT 简介: NVIDIA Jetson TX2系统对模块上的系统(SOM)重新定义了可能性;性能、电源效率、集成的深度学习能力和丰富的I/O组合消除了新一代产品的障碍。JetsonTX2是许多应用的理想选择,包括(但不限于):智能视频分析(IVA)、无人机、机器人、游戏设备、虚拟现实(VR)、增强现实(AR)和便携式医疗设备。优越的性能,稳健的设计和降低系统集成的复杂性,使更先进的产品更快地进入市 阅读详情
640点击上方蓝色字关注我们~



Improving access to physically contiguous memory

By Jonathan Corbet
May 8, 2019


LSFMM


一直以来,内核开发者都尽量避免分配大块的物理连续内存,因为系统运行一段时间之后内存碎片化了,就很难分配得出大块物理连续的内存空间了。不过,在2019 Linux Storage, Filesystem, and Memory-Management Summit上,Zi Yan指出,分配连续内存有时候还是必要的,如何能让这种类型的分配更容易成功呢?


Yan讲到有很多种场景里面都是需要分配物理连续内存的。如果利用huge page(2MB)或者gigantic page(1GB)的话,能够通过提高CPU TLB(translation lookaside buffer)的利用率来改善系统性能。还有一些高带宽的外设也想要用物理连续内存,这些外设也都有TLB会希望提高利用效率。每次TLB miss的时候,都需要去重新做一次page table的解析,通常外设做TLB解析的速度比起CPU更加慢得多。


目前有三种方法可以分配大块连续的物理内存。一种是通过libhugetlbfs虚拟文件系统,这种需要在Linux启动阶段就扣除这部分内存区域。用户可能拿不到最合适的size,并且在kernel里面没有API能够通过libhugetlbfs来分配内存。第二种方法是transparent huge pages(透明巨页),可是没有解决碎片化问题因此需要经常对系统内存做整理,并且它依赖于kernel的buddy allocator分配机制,也就是说能分到的最大的buffer size受MAX_ORDER(一般系统里设置为11,意味着最大就是2048个4K page)限制。这样它完全没法提供gigantic pages所需的空间。第三种方法是利用alloc_contig_range()函数,这是CMA内存分配器提供的函数,不过这个机制在user space无法使用。


Dave Hansen指出libhugetlbfs现在能在系统启动之后再进行resize了,也就是一个主要缺陷现在已经不存在了。Andrea Arcangeli认为如果能从libhugtlbfs来分配到transparent huge pages的话会非常有用,这个可能也不难实现。看起来这里真正的问题,并不是分配大块内存的能力,而是这个分配会花费多少时间。因为想要获得这种大块连续内存的话,可能总是绕不过对碎片化的内存先进行compaction。还有一些开发者争论如何才能快速分配一些更高order的内存,不过没有结论。


Mel Gorman认为大块内存分配时候的latency是一个老问题了,kernel此前在碰到这种情况的时候,可能会出现几秒钟的卡顿,不过那是很久以前的事情了。需要先有人调查清楚当前最新kernel里面是什么情况,否则我们讨论的可能只是一个假想问题。Transparent huge pages在kernel 3.0之后已经经过几次大改动了,网上搜集到的信息可能都是针对老版本的实现,不一定符合当前最新kernel的情况。所以有人如果碰到在分配大块内存的时候有长延迟的情况,应该仔细调查一下系统环境,打开tracepoints,把测试结果报告出来,当然是要用最新版本的kernel测试的情况。


不过Yan还没有讲完。他也带来了一个方案,希望能在内存被分配之后减少VMA(virtual memory area)的碎片化。希望能找到一些配对的page能够交换内容,这样来改善系统表现。这个方案跟内核的khugepaged线程还不一样,会在原地址来做defgrament,而不是分配另一个huge page来把数据搬移过去。这个page-exchange(page交换)的主意让在场的很多开发者非常惊讶,因为这个翻案可能会非常复杂。Yan认为,这种方案的优势在于它不需要再额外分配新的page,而两个互相交换内容的page会通过CPU的寄存器来做copy和交还。


Gorman问这里人们为什么需要避免分配临时page,Yan的回答是对大page来说是有价值的,不过在场的开发者没有被说服。然后Gorman问性能数据的时候,Yan回答说这个data exchange要比简单搬移两个page要快,不过不清楚为什么。Hansen问,这个改动最后到底解决了什么问题,Yan指出用这个方案,就能在不修改内核MAX_ORDER参数的情况下获得一个1GB gigantic page。与会者也没有被这个好处说服。目前的CPU对gigantic pages有tiny TLB,此前没有人提供性能数据证明用这种方案的性能优势。


Yan(他是NVIDIA员工)跟在场的另一位NVIDIA开发者讨论了一段时间,看起来NVIDIA可能希望用1GB page来在某些未来产品里面提升性能。不过他们目前目前没法提供关于这个这个未来产品的更多细节,因此kernel开发者也没有兴趣支持这个需求。


最终,这个议题结束了,Gorman的结论是目前没有必要实现这个机制,khugepaged已经足够了。如果kernel的page-migration执行的太慢了,那么大家应该想办法改善它,而不是绕过它。例如目前还没有人来帮助实现migration的批量化操作。


全文完

LWN文章遵循CC BY-SA 4.0许可协议。

极度欢迎将文章分享到朋友圈 
热烈欢迎转载以及基于现有协议上的修改再创作~


长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~


640?wx_fmt=jpeg

YOLO26算法水面与液体识别+训练好的模型+393张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[未获取()] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 52 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8528** mAP50-95 | 0.3441 Precision | 0.7729 Recall | 0.8354 train/box_loss | 1.5367 train/cls_loss | 1.0228 val/box_loss | 1.6809 val/cls_loss | 1.1758 【训练过程分析】 我这次训练了52个周期,模型在训练初期确实收敛速度很快,前20个周期mAP50从0.74逐步提升至0.82,这说明模型开始适应数据集,学习到一些关键特征。但到第30个周期后,提升速度逐渐放缓,到了40个周期时,mAP50达到0.85,这个阶段的曲线走势有些像磨砂玻璃,平滑且不规则,后期更是趋于平缓,表明模型可能已经达到最优解,再继续训练可能会有少量提升但代价较大。整体而言,从loss曲线来看,训练集的box_loss和cls_loss在52个周期内分别从1.80和1.25降到1.54和1.02,下降曲线较为稳定,但到了后期,这两项指标下降幅度逐渐减缓,尤其cls_loss下降至1.10左右后趋于稳定,这可能是模型对训练数据已有了较强的泛化能力,但也提示我们分类的稳定性可能还欠些火候。 至于验证集的表现,box_lo... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

相关推荐

C#西门子上位机与PLC通讯++S7协议

支持S7-200,S7-300,S7-1200,S7-1500+使用技术C#+S7net

NVIDIA_TX1之初次使用体验

NVIDIA Jetson TX1是英伟达推出的一款可用于深度学习等方面研究的计算机板卡,带有16G的EMMC存储和 4GB的内存,它采用了Maxwell GPU架构,支持CUDA、TensorRT等。这款板卡运行linux的体验上,比前面的斐讯n1好多了(当然,价格也差多了。。。)。 刷机 刷机的方法在网上已经有很多教程,但是很多都还是jetpack 3系列的老教程,我想自己摸索下,研究下新版本jetpack刷机的方法。 我刷机时使用的是jetpack4.6,通过USB刷机。按照网上的说法,其实现在已经支

finhaz的博客 2617

MATLAB模拟6自由度无人机检查,具备干扰补偿、裂纹检测和自主复检功能。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

LWN:再次提交fs-verity方案!最终版?!

点击上方蓝色字关注我们~Yet another try for fs-verityByJonathan CorbetJune 3, 2019fs-verity机制起源于...

Linux News搬运工 2577

AI大模型医学影像诊断智能识别应用方案.pptx

AI大模型医学影像诊断智能识别应用方案.pptx

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

cgroup与dpdk启动

1、cgroup 下载 2、cgroup a、cgroup是一种文件系统 b、cgroup主要用于进程资源使用的限制,避免某个进程消耗过多的cpu,memory c、cgroup具有层级关系 3、cgroup的设置 /sys/fs/cgroup /*将进程加入到cgroup 的全局组中*/ void inline addself_global_cgr

hz.wu 专栏 1790

LLC谐振变换器恒压恒流双竞争闭环控制simulink仿真(附说明文档)

内容概要:本资源是一套面向电力电子与智能控制领域的综合性科研仿真资料合集,核心聚焦于LLC谐振变换器的恒压恒流双竞争闭环控制策略设计与Simulink建模仿真实现,涵盖半桥LLC、双向全桥LLC等拓扑结构的调频闭环仿真,并提供详尽的说明文档与PPT辅助材料。资源体系不仅深入呈现LLC变换器的动态响应与控制逻辑,还扩展至双有源桥(DAB)变换器的软开关协同优化、最小应力控制、EPS调制策略及新扩展移相角优化等前沿技术,同时集成三相PWM整流器在电网不平衡条件下的功率平衡控制、VOC+SVPWM双闭环控制等典型应用场景。此外,资源包涵盖状态估计(如EKF、UKF、PF)、微电网经济调度、卡尔曼滤波融合、神经网络控制、PID优化、储能系统管理等多个交叉方向,特别强调对顶级EI期刊研究成果的高精度复现,旨在帮助科研人员快速掌握先进控制算法的核心思想与仿真实现方法。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等相关专业的硕士博士研究生、高校科研人员,以及从事新能源变换器、智能电网、电动汽车、微电网系统研发的工程技术人员。; 使用场景及目标:① 深入理解LLC与DAB变换器的闭环控制机理,掌握恒压恒流切换、软开关实现与损耗优化方法;② 利用Simulink平台构建复杂电力电子系统模型,开展动态性能分析与控制器参数整定;③ 复现高水平期刊论文中的先进控制策略,提升科研创新能力与论文发表竞争力;④ 支持毕业设计、科研课题、项目申报及工程原型开发中的仿真验证环节。; 阅读建议:建议结合提供的完整资源目录循序渐进学习,优先研读标注“顶级EI复现”的案例以获取权威方法参考,配合MATLAB/Simulink动手搭建模型,重点关注控制框图设计、调制逻辑实现与仿真结果对比,深入理解算法背后的物理意义与数学推导过程。

LWN:写文件的时候不希望写入一半的时候掉电丢失,怎么办?

点击上方蓝色字关注我们~A way to do atomic writesByJake EdgeMay 28, 2019LSFMMChristoph Hellwig在2...

Linux News搬运工 979

概率神经网络的分类预测-基于PNN的变压器故障诊断(Matlab代码实现)

内容概要:本文系统阐述了基于概率神经网络(PNN)的变压器故障诊断方法,结合Matlab代码实现分类预测。通过提取变压器运行过程中的关键特征参数,构建PNN模型以实现对正常状态与典型故障状态(如绕组短路、铁芯故障等)的高效分类识别。文章深入剖析了PNN的网络结构、概率密度估计原理、训练机制及分类决策过程,并通过仿真实验验证了该方法在故障诊断任务中具备较高的准确率与鲁棒性,展现了其在电力系统状态监测与智能运维中的良好应用前景。; 适合人群:具备一定机器学习理论基础和Matlab编程能力的电气工程、自动化、智能电网等相关领域的研究生、科研人员以及从事电力设备状态监测与故障诊断工作的工程技术人员。; 使用场景及目标:①实现变压器早期故障的智能化诊断与预警,提升电力系统运行安全性;②为基于神经网络的工业设备故障分类任务提供可复现的算法实现范例与技术验证平台; 阅读建议:建议读者结合文中提供的Matlab代码,动手复现实验流程,深入理解PNN在实际分类问题中的参数配置、训练策略、性能评估方法,并鼓励将该方法迁移至其他电力设备或机电系统的故障诊断场景中进行拓展研究与优化改进。

优快云首页 发布文章 优快云同步助手 多无人机面向城市空中交通的多无人机路径规划研究(Matlab代码实现) 37 100 摘要:会在推荐、列表等场景外露,帮助读者快速了解内容,支持

内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,系统阐述了该领域的核心挑战与关键技术。文章首先定义了多无人机路径规划的问题,明确了包括飞行安全、避障、协同效率在内的多项约束条件与性能指标。随后,重点介绍了三大类路径规划方法:基于改进RRT算法和图论的全局路径规划方法,用于构建初始可行路径;基于动态风险场的模型预测控制和动态窗口法(DWA)的动态避障方法,以应对环境中的突发障碍;以及多无人机协同规划策略和分布式协同控制算法构成的局部协同调整方法,确保多机间的飞行安全与任务协同。研究通过搭建Matlab仿真实验平台,设计了多种复杂城市飞行场景,对所提方法进行了全面的仿真验证与结果对比分析,展示了各方法在不同场景下的有效性与优劣。; 适合人群:具备一定自动化、计算机或航空航天领域基础知识,从事无人机、智能交通、路径规划等相关方向研究的研发人员和研究生。; 使用场景及目标:①为城市空中交通管理系统(UATM)的设计与开发提供理论基础和技术参考;②应用于物流配送、城市巡检、应急救援等多无人机协同任务的路径规划算法设计与仿真验证;③作为相关领域科研工作的技术参考资料,推动多智能体协同决策与控制技术的发展。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,通过复现仿真结果加深对各类算法原理与实现细节的理解。在学习过程中,应重点关注全局规划与局部避障的结合机制,以及多机协同策略中的冲突消解逻辑。

LWN: Linux稳定分支状况以及相应测试

点击上方蓝色字关注我们~Testing and the stable treeByJake EdgeMay 28, 2019LSFMMSasha Levin在2019 ...

Linux News搬运工 548

无刷直流电机BLDC转速电流双闭环+无位置传感器控制仿真【仿真+详解说明报告+参考文献】

内容概要:本文详细介绍了一套针对无刷直流电机(BLDC)的Simulink仿真资源包,核心内容涵盖转速电流双闭环控制与无位置传感器控制技术,重点采用滑模观测器(SMO)实现对转子位置与速度的精确估算,避免了物理位置传感器带来的成本与可靠性问题。资源包提供了多个高质量仿真模型,包括基于模糊PID与传统PID控制策略的对比分析、无感控制结合滑模观测器与双闭环PI控制的综合系统等,全面展示不同控制算法在动态响应、抗干扰能力及稳态精度方面的性能差异。所有模型均基于Matlab/Simulink平台构建,配套详尽的技术说明文档与参考文献,深入解析控制结构设计、观测器原理、参数整定方法及系统稳定性分析,适用于电机驱动系统的研究、教学演示与工程验证。; 适合人群:面向电气工程、自动化、控制科学与工程及相关专业的本科生、研究生、科研人员和工程技术人员,尤其适合从事电机控制、电力电子与运动控制系统研究的专业人士,具备自动控制理论基础和Matlab/Simulink基本操作能力者更易上手。; 使用场景及目标:① 深入学习并掌握无刷直流电机双闭环调速系统的工作原理与无位置传感器控制的关键技术;② 对比研究模糊PID与传统PID在电机控制中的动态性能与鲁棒性差异;③ 开展滑模观测器在非线性系统状态估计中的建模与仿真研究;④ 支持课程设计、毕业设计、科研项目申报及学术论文复现等实际应用场景。; 阅读建议:建议用户结合提供的详解说明报告,逐步运行各仿真模型,重点关注控制器参数调节过程、滑模观测器的设计细节及其收敛性表现,深入分析系统启动、负载突变、转速切换等工况下的响应特性,鼓励在此基础上进行控制算法改进、引入新型观测器或拓展至其他电机类型进行创新性研究。

LWN:Linux kernel要有几种test framework?

点击上方蓝色字关注我们~How many kernel test frameworks?ByJake EdgeJune 5, 2019Linux kernel的自测试框...

Linux News搬运工 1713

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文提出了一种基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法,旨在实现高效能、低损耗的电力变换控制。通过构建包含软开关约束与电流应力目标的优化模型,结合KKT最优性条件进行数学推导,对变换器的工作模态进行分段解析处理,精确求解出满足零电压开通(ZVS)且电流有效值最小的最优工作点。在此基础上设计了闭环控制系统,有效提升了变换器在全功率范围内的运行效率与动态响应性能。文中详细阐述了控制策略的理论推导过程、优化求解算法实现及Simulink仿真实验验证,充分展示了该方法在协同优化软开关范围与器件应力方面的优越性。; 适合人群:从事电力电子与电力传动、新能源发电系统、电动汽车及微电网等相关领域的科研人员与工程技术人员,具备一定的电路理论、最优控制理论与仿真建模基础。; 使用场景及目标:①用于高效率双有源桥变换器的先进控制策略研究与设计;②为解决传统移相控制中软开关范围受限与功率器件电流应力高的问题提供优化思路;③适用于车载充电机、直流配电系统、可再生能源并网等对高功率密度与高效率有严苛要求的应用场景。; 阅读建议:建议结合Simulink仿真模型深入理解控制算法的具体实现流程,重点关注KKT条件在非线性约束优化中的应用逻辑以及分段解析策略的设计思想,同时可通过对比传统单移相控制(SPS)或双重移相控制(DPS)方法,直观体会本方法在效率提升与应力抑制方面的综合优势。

【STC8A8K64S4A12开发板】—学习PWM脉冲宽度调制

版权声明:本文为博主原创文章,转载请附上原文出处链接。 文章目录前言一、硬件设计1.PWM脉冲宽度调制介绍2.STC8A8K64S4A12系列单片机PWM介绍3.PWM配置步骤二、软件设计1.PWM寄存器汇集2.寄存器解析2.1.PWM配置寄存器PWMCFG2.2.PWM控制寄存器PWMCR2.3.PWM中断标志寄存器2.4.PWM外部异常控制寄存器2.5.PWM时钟选择寄存器2.6.PWM触发ADC计数器寄存器2.7.PWM2翻转寄存器2.8.PWMn控制寄存器2.9.PWMn电平保持控制寄存器3.PW

qq_36139768的博客 5216

LWN: 想用python命令来调试kernel吗?drgn就是了!

A kernel debugger in Python: drgnByJake EdgeMay 29, 2019LSFMM2019 Linux Storage, Fil...

Linux News搬运工 1170

手把手教你用Qt和DSP28335实现串口Bootloader,附赠源码和避坑指南

本文详细介绍了如何使用Qt和DSP28335实现串口Bootloader,包括开发环境搭建、通信协议设计、Qt上位机开发、DSP端Bootloader核心实现以及应用程序工程的特殊配置。通过实战案例和源码分享,帮助开发者快速掌握嵌入式固件升级技术,提升工业设备远程升级的效率和可靠性。

weixin_29176179的博客 133

LWN:epoll也要用ring buffer来跟用户程序交互了

A ring buffer for epollByJonathan CorbetMay 30, 2019epoll这一组system call系统调用设计目的就是希望能...

Linux News搬运工 479

攻克Windows平台3DGS复现:从环境配置到可视化实战全记录

本文详细记录了在Windows平台成功复现3D Gaussian Splatting(3DGS)的完整流程,涵盖从环境配置、依赖安装、数据准备到模型训练与可视化的全步骤。重点解决了Windows下CUDA版本匹配、Visual Studio编译及SIBR_viewers可视化工具部署等核心难题,为开发者提供了一份详实的避坑指南与实战手册。

weixin_28839699的博客 251

编程实践:寒武纪-LLM&VLM模型量化&部署

本文介绍了在MLU370-S4平台上对大模型(LLM/VLM)进行量化的两种方法:SmoothQuant和WeightOnly。以Qwen2-VL-2B模型为例,详细说明了两种量化方式的命令行参数配置,包括必须设置的per_channel选项和量化参数调整建议。量化完成后,提供了模型部署的具体命令示例,包含设备分配、端口设置、并行度等关键参数。文章强调在MLU370芯片上需要手动设置block_size,并指出两种量化方式只能二选一使用。配套资料已上传至百度网盘供参考。

微风❤水墨 506

LWN: 如何像kernel专家一样rebase & merge?

点击上方蓝色字关注我们~Rebasing and merging in kernel repositoriesByJonathan CorbetJune 18, 201...

Linux News搬运工 629

4、基于STM32 NUCLEO - F030R8开发板的嵌入式编程入门

本文详细介绍了如何在STM32 NUCLEO-F030R8开发板上实现LED闪烁功能,作为嵌入式编程的入门实践。内容涵盖开发板组成、跳线设置、项目创建、代码编写与解析、编译运行步骤,以及常见问题解决方法和拓展应用。通过本文学,习者可以掌握嵌入式开发的基本流程,并为后续深入学习打下基础。

m9n0o的博客 83
上一篇: 腾讯云网络事业部招聘Linux网络工程师(初级、高级、资深、架构师统统都可以)...
下一篇: LWN:检测Intel CPU的split locks以及阻止攻击
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值