- 博客(201)
- 收藏
- 关注
原创 谁说空指针不能访问的?
在C语言这种手动管理内存的程序语言中,一般会按照默认的规则将空指针视为不可访问。去查找VMA,如果VMA可用,那么就按照指定地址分配,这个时候内核会直接返回指定的地址,但如果通过指定的地址申请内存失败,那么这个内核会按照默认的逻辑自顶向下的查找可用内存区域,此时就不会根据指定地址进行分配了,而且在自顶向下查找的过程中,内核会通过。内存分配涉及到物理内存这种宝贵的物理资源,这种敏感的资源一般都是由内核管理的,进程想要访问内存,需要先通过系统调用向内核提出申请,应用程序是无法访问未经内核同意的内存区域的。
2025-11-16 23:05:04
554
原创 LINUX内核驱动的一处神来之笔
而Windows驱动则不然,它会遍历所有表项,如果发现表项中描述的端口号超过了端口数,那么就报告枚举失败,罢工而退。USB总线始于1995年,30年里一路走来,经历了很多个版本,从控制器角度来看,有OHCI、UHCI、EHCI、XHCI等。考虑到硬件成本和使用场景,XHCI的端口可以具有不同的能力,比如幽兰代码本的USB口就有支持USB 3.0,也有只支持USB 2.0。这样单独为了兆芯的硬件而增加代码成本有点高,由此而看,上面的while循环中的break,不仅优雅,而且通用,真是妙极,神乎其技!
2025-11-13 22:20:44
281
原创 Linux系统的设备总线(/sys/bus)原理与实践
当一个设备被添加到系统时,会调用 device_add() 函数,而 device_add() 的核心动作之一,就是主动将设备交由其所属总线进行处理——通过调用 bus_probe_device(),总线正式介入设备注册流程,主导后续的驱动匹配过程。该命令以树形结构展示了 /sys/bus 目录下所有已注册的总线类型(如 pci、usb、platform、i2c 等),并对每种总线分别列出其管理的设备和已加载的驱动程序,清晰呈现了系统中各类总线与其关联设备和驱动之间的层次关系与组织结构。
2025-11-10 11:06:03
629
原创 Linux系统的设备类(/sys/class)原理与实践
在 /sys/devices 那片由总线、控制器、地址交织而成的密林中,/sys/class 如同一张精心绘制的地图——不展示每一条小径的曲折,只标注“此处有网卡”“彼处是电池”。概而言之,/sys/class 忽略物理连接,只按设备的 “功能用途” 分组,每个功能目录下的文件以链接形式直接指向 /sys/devices 中对应的真实设备节点,这种方式极大降低了设备访问的复杂度。就像诗句中在人潮中执着寻找 “那人”,满脑子都是 “他该在灯火最亮的地方”,却没料到答案偏偏藏在看似清冷的 “阑珊处”。
2025-10-31 22:55:54
322
转载 为AMP而生,GDK5套件细节公布
某种程度来说,AI革命对很多程序员喜忧参半,AI的编程能力与日俱增,与程序员抢饭碗是不争的事实。而且,这个趋势不可阻挡,如何在这场变革中找到自己的机会是关键,AMP便是给底层技术人的一个机遇,衷心希望格友们能抓住这个机遇。AMP在机器人、电力系统、自动驾驶、精密机床等产业中都有非常高的匹配度,AMP技术提供的"让Linux和RTOS无缝并行运行"的能力,是这样行业所亟需的。概而言之,它们既需要。的时代里,它的优点再次凸显出来,正在受到越来越多的青睐。屏线前请务必确认电压选择跳线帽配置正确!
2025-10-18 08:29:24
56
原创 Linux 系统的设备树(sys/devices)原理与实践
从名字就能看出:"5-1"中的"5" 对应 _usb5(USB 总线 5),"1" 表示插在根集线器的 1 号端口,等于告诉系统:"我插在它的 1 号口,归它管"。在探究 /sys/devices 的过程中,我从 kobject 的字段定义、kset 的集合管理,一路追踪到 kernfs_create_dir_ns 的目录创建过程,最终在 fc880000.usb 与 _usb5 的父子关系中,清晰印证了内核设计的精密逻辑。在做这个任务的过程中,我做好了前面的部分便停止了。中,并没有做层级的区分。
2025-10-17 18:07:14
627
原创 AMP的道与器
从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(全球软件战役研究峰会)、《感受和思考调试器的威力》(优快云 SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究Windows内部原理系列”的一部分)等。,主要功能:加载固件,启动和停止远程处理器,使用的内存,中断控制器和中断分发,时钟,
2025-10-16 17:43:26
285
转载 具身智能下的实时陷阱:线程风暴致系统卡死
很多工具验证、系统实验、性能分析都是在它上面完成的 (图中是我在幽兰笔记本上编译 Wireshark 并进行 USB 抓包的画面,用于分析 USB 调试链路) 在这个过程中,它不仅是一台设备,更像是一位沉默的搭档,默默见证着我的成长和进步。尤其是在算法侧常用的并发库(如 ONNX Runtime、OpenMP、TBB)与实时任务混跑的场景下,一旦调度属性被无意间继承,就可能引发一场“看似网卡掉线,实则CPU被锁死”的事故。当你再遇到那种“莫名卡死”的系统时,也许答案并不在外设,而藏在。网口无法ping通。
2025-10-13 13:08:07
39
转载 调试神秘的EL3
进一步说,不同的代码运行在不同的级别。应用程序运行在级别最低的EL0,操作系统运行在EL1,VMM运行在EL2,最高级别的EL3留给系统固件,一般称为ATF(ARM Trusted Firmware),也称TZM(Trust Zone总督)。NDB迅速响应,通过ADI接口与SoC对话,让对方进入调试模式,一切就绪后,NDB显示出命令行提示符,等待更多命令。我在U-Boot课程中,曾经翻来覆去、浓墨重彩的讲过MaskROM,简单说,它是SoC厂商在出厂前烧到芯片内的一段程序,它以可信固件的身份工作EL3。
2025-09-09 11:28:29
57
原创 Indler漏洞更新
概括一下,Indler漏洞已经报告,某些内核已经修正这个问题,比如幽兰代码本使用的内核是修正了这个问题的,但是内核的主线代码还没有修正。这个漏洞的另外一个危害就是会导致内核不稳定,一旦触发,那么内核数据被意外覆盖,导致莫名其妙的BUG,这也正是格蠹当初注意到它的原因。Kees向我要了重现步骤,我把本来中文写的重现步骤翻译为英文后发给了他,他回复说,他会把这件事加到他的计划里。关于这个漏洞的危害,至今没有已知的RCE(远程执行代码)利用方法,但是DoS攻击的方法是比较多的。Kees可能是忙不过来了。
2025-09-07 11:47:45
707
原创 新版微信的374崩溃
可能是释放的块本身有问题,比如参数是野指针,多次释放,也可能是其它代码把堆搞坏了,这次调用触发了问题,冤枉背锅。堆的问题也常常反应了代码中的一些深层问题,比如频繁的动态分配,分配释放逻辑混乱等。归纳一下,这次崩溃是因为新版微信进程内的进程堆发生故障,在Weixin.dll释放堆块时触发了NTDLL的堆检查机制,报告致命错误,打开桌子边上的《格蠹新编》,翻到94页,图15-2,调用栈里,主程序就是WeChat。双击报告附带文件中的dmp文件,WinDBG被唤起,自动打开了这个转储文件,让我禁不住看了几眼。
2025-09-03 14:23:54
609
原创 U-BOOT构建脚本闪退之谜
主线代码反向移植到幽兰代码本本来使用的v2017版本时,遇到构建脚本闪退的问题。因为这个问题涉及到多种程序文件和配置文件的配合,比较新颖,所以特别将其记录下来。如果大家想重现和体验这个问题,那么非常简单,只要打开toosl/Kconfig, 找到config MKIMAGE_DTC_PATH这一行,将其修改为。函数的参数是个很大的params结构体。回头追查产生命令的代码,仔细看snprintf的第一个动态内容,来自一个名叫。看起来是调用dtc来编译设备树文件的命令行,但是却没有关键的dtc程序名。
2025-08-26 10:38:08
312
原创 在调试器下理解Linux内核的追踪事件和追踪器
【RZ】是有关联的两个概念,事件是基本的信息提供器,tracer是一种追踪信息定制机制,内部常称为plugin,tracer可以和事件关联,比如graph_trace tracer与graph_trace_entry_event和graph_trace_ret_event是关联的。Linux内核的追踪机制是实现系统调试和优化的一项关键设施,也是很多上层工具赖以生存的基础,包括eBPF、trace_cmd、Kernel Shark、其中1号栈帧的lk!在追踪机制中,追踪事件和追踪器是一对有关联的关键概念。
2025-08-25 15:18:09
735
原创 格蠹之役何茫茫?
上周四周五(8.14-15)两天,我在南京一家公司里讲调试课,周五中午课间休息时,上海的同事发来一条消息:“收到一个快递”,并且附带了一张照片。这两年,AI技术大兴其道,加上外企裁员,一些技术同行失业了,更多的同行则受到了心理上的影响,对编程和软件技术的热情下降,失去斗志,切换到“躺平”模式。打开我电脑上存放《格蠹汇编》书稿的文件夹,还有一个postpub目录,里面放着一些照片,拍的是《格蠹汇编》出版后的一个签售会。讲座现场,大约有几十个人参加,大多是喜爱调试的同行,特别是《高端调试》网站的一些网友。
2025-08-24 11:32:01
950
原创 PC经验和U-BOOT的启动菜单
我尝试关闭SMART监视,然后退出BIOS,重新启动,很有效果,刚才的报警消息没有了,屏幕上显示操作系统的徽标,过一会后,成功进入系统,虽然本地屏幕花屏了,但是我可以通过网络远程登录。幽兰使用的U-Boot代码来自瑞芯微开发的一个分支,这个分支是基于U-Boot主代码树的2017版本,因为此,这个分支的代码的版本号里有个明显的v2017标记。在我看来,不管是普通用户,还是专业用户,当他遇到眼前的计算机罢工,无法启动而焦急万分无计可施时,你告诉他,可以进到BIOS做某某设置,他都会眼前一亮。
2025-08-22 22:38:21
1024
转载 英特尔对LINUX的真爱是普渡众生还是养虎为患?
从下面这张我维护多年的Linux内核发展表可以清楚看到,2000年是个重要分水岭,2000年之前,Linux的体量就那么一点,2000年之后则高速发展。我在英特尔工作时,曾经从这里飞到硅谷区域的英特尔行政总部,英特尔的研发中心有大巴坐到机场,拿着英特尔的胸卡就可以登机,特别的方便。一个简单的解释是,如果没有Linux,那么小的芯片厂商根本没有机会进入高端的计算市场,因为没有操作系统支持它,它自己没有能力研发操作系统,微软这样的操作系统厂商也不可能支持它们。但其实圈里人都知道,投入最大的就是英特尔。
2025-08-10 11:33:53
38
原创 让人撇嘴的崩溃和让人叹服的可调试性
我特意“打开所在的文件夹”,看了一眼刚刚下载好的文件,对它说:“你好啊,美国来的客人,上海欢迎你!新版本装好后,启动wpa,界面果然和以前不一样,布局更漂亮了,右侧还多了个“欢迎使用的新的启动器!更难得的是,把鼠标移到变量上,立刻显示出了变量的值,XPerfProcessingSource.XPerfAddInDirectory的值确实是我安装WPT的路径。我估计VS要忙一会,就切到微信界面,看了几条消息。为此,我特意把安装程序复制到一个新的本子上,重复上面的步骤,结果还是同样的症状,致命的异常,崩溃。
2025-07-12 17:34:07
835
转载 AI时代,编程已死?不,它比以往任何时候都更重要!
如果没有专业开发者的严格数据治理和算法监控,AI可能被喂入毒数据(Poisoned Data)或脏数据(Dirty Data),轻则导致模型失效,重则可能被恶意利用 - 比如生成虚假信息、操纵金融系统,甚至干扰关键基础设施,这些都将对社会秩序造成严重威胁。例如:2023年,Stack Overflow的一项调查显示,87%的开发者使用AI辅助编程,但其中76%的人表示仍需手动修改AI生成的代码。这说明,AI目前只能作为“然而讽刺的是,那些宣称“AI取代编程”的人,可能从未真正理解AI是如何被创造出来的。
2025-06-28 08:50:53
118
原创 让人喷饭的BUG在哪里?
回过头来看,这个表面上非常明显的BUG,实际上还是有些复杂的,不是简单的单点错误,而是牵涉到多个函数。对于这样的BUG,不上调试器的话,是不太容易看出来的。踪时,我发现事件的pmu_name属性不为空,而且大核的叫cpu_core,小核的叫cpu_atom。,更重要的是,当场证明了这一定是BUG,因为眼力过人的李博士看出是用小核的时钟数去除大核的指令数,指桑骂槐,张冠李戴。对于大矩阵乘法的1号算法,大核的IPC为2.46,小核的IPC为0.73,大核的表现优于小核。函数中遍历事件列表,搜索指定类型的事件。
2025-06-12 22:18:10
1018
原创 破纪录的IPC和让人喷饭的BUG
但我觉得,VTune的信息有待更新,对于最新的微架构,IPC的理论上限应该是6。上午的第一讲讲的是时间测量,第二讲是时钟,第三讲是IPC,也就是每个时钟能执行的指令数(Instructions Per Cycle)。和前一天一样,大家使用自己喜欢的环境做试验,有的用至强,有的用酷睿,也有人用AMD的Ryzen(锐龙)和EPYC。正在这僵持的窘境,经常“语出惊人”的李博士给出了一个惊人的猜测:可能是用大核的指令数去除小核的时钟数了。看到10.83这样的结果,我是无论如何不相信的,坚信是哪里出了问题。
2025-06-10 22:02:02
316
原创 使用VTune远程优化LINUX程序
今天是第一天,北京的天气非常好,蓝天白云,晴空万里,天气有些热,还好室内中央空调充足,而且人手一把新款的“格物致知”扇子(^_^)。使用霄龙笔记本的同学在得意了好一阵子后,在做VTune试验时遇到问题了,VTune可以安装在AMD系统上,但是很多试验都无法做——报告不支持的处理器型号(^-^)。接下来,再刷新VTune的界面,就可以选择各种高级优化试验了,比如基于硬件事件的采样。上午从Intel的CPU讲起,回顾IA历程,介绍Core、UnCore,讲的有点多,只做了一个小试验(感受x86的变长指令)。
2025-06-06 22:56:28
664
转载 致广大而尽精微——读张银奎《软件简史·序》后感
我读了《序》和前两章,随后在动车上和飞机上,我每读一章前,我就再看一遍《序》,已经记不清楚读了多少遍《序》。每读一遍《序》,我就想到《典籍里的中国》中的编写典籍的那些先辈们在历史长河中躬身入局、身体力行地将文化和智慧保存下来,传承中国文化、传承中国精神,让我们薪火相传、接续前行。张银奎说:“历史本来就是有趣的,很多学科都是有趣的,我们应该发现它的趣味,归还它本来的趣味给每个喜欢求知的心灵。我想,他是以人文情怀审视软件的,他应该是想打破技术与人文的边界,想软件开发应关注人的需求、社会责任和文化价值。
2025-06-05 13:10:36
74
原创 全栈调试实战营之二线拍案惊奇
充电图标、Linux内核的电能管理、dynamic_debug、debugfs、动态启用、在命令行启用、通过虚文件看状态、供电给谁(supplied_to)和谁给我供电(supplied_from)、电池驱动、设备树脚本、解决问题和引入新的问题。补丁、脚本的扩展机制、调试bash脚本的挑战和策略。:内核启动失败、KASAN、越界、用户空间模拟、ASAN、谷歌的俄罗斯研发团队、指针数组、malloc和calloc、触发github的Blame视图、哪些人改过、众目睽睽之下的BUG、林纳斯法则为何失效?
2025-06-04 14:39:25
944
原创 从损坏的硬盘中抢救没有备份的书稿
敝帚自珍,自己写的东西再差,也是很珍惜的,不能轻易丢啊。接下来,我不使用比较重的ls命令了,直接使用cd切换目录,一级级的切换到包含书稿的目录,中间有时略有停顿,但是都有惊无险,成功切到vol3目录后,执行ls,可以看到期盼的那些书稿文件,它们似乎也在以期待的眼神看着我,仿佛被洪水围困的一群孩子看到了救援的队伍。是的,使用Linux,Linux也支持微软的文件系统(NTFS),最重要的时,Linux相对单纯,上面没有那么多的软件争着读硬盘,让它做什么就做什么,不像Windows上的软件自作主张,擅自妄为。
2025-06-03 19:10:21
622
原创 Git使用经验点滴
吃过晚饭,我又尝试使用云上的虚拟机来下载,网速很快,5分钟左右就完成了大约30%,但是到了大约36%时,下载速度变成了0KB/S,git非常缓慢地更新接收的对象数,估计是在处理复杂的数据对象。对于某些开源项目,如果我们只想简单了解,不需要提交代码,那么就不必使用git clone这样的命令来克隆仓库,最快捷的方式就是下载代码的压缩包,在浏览器上操作一下就可以了。以上是一些点滴的经验,对于git高手来说,不值得一提,写出来只为分享给初学git的格友,如果大家有什么好的经验,也欢迎留言。
2025-05-21 12:03:45
768
原创 再战声卡无声难题(下)
方向上我是很认可的,如果没有给声卡提供合适的时钟信号,那么声卡是无法工作的。首先,我查找给声卡芯片提供时钟信号(MCLK)的管脚——GPIO1C2,这个管脚有多种用途,根据芯片手册,要通过BUS_IOC(总线IO控制器)的IOMUX寄存器来为其配置用途。用了大约1个小时时间开外壳,查电路,上示波器,经过实际测量,证明了E工的怀疑非常精准,确实是没有MCLK。上面的图是放大过的,实际芯片很小,只有4mmX4mm,也就是长和宽都是4mm,不到半厘米。)的幽兰,做同样的测量,可以得到一个有规律的波形。
2025-05-17 12:09:08
910
原创 再战声卡无声难题(中)
但是,我大脑中那些喜欢“追求完美”的细胞们站出来反对:“没有suspend会费电啊,不使用设备时也白白耗电,会减少电池待机时间,不利于节能和环保...”我深以为然,是啊,不能图一时简单,还是要选周全的方案。书归正传,改掉这个编译错误的方法倒也简单,加个参数就行了。我打开kernel.org,找到最新的6.15内核代码,粗略比较,确实比6.1的多了很多行代码,差异挺大,可能改掉了不少问题。声音子系统的特点是琐碎的东西很多,多声道,各种音频格式,传输接口,加上音量调节,去除噪声等等,当然还有静音(Mute)。
2025-05-15 18:38:07
848
原创 再战声卡无声难题
比较重要的一点是开源和AI两股力量都导致代码很容易得到,很容易得到就导致代码迅速聚拢和堆积,形成一个庞大的代码系统,这些代码有的来自开源,有的来自AI,有的来自人工。感觉有些疲倦后,我尝试使用第二个HDMI声音设备播放声音,另一端连接一个有音响的显示器,结果很正常,我播放的是horse.wav,可以听到马的一声长鸣,这个声音在寂静的办公室里响起,格外响亮。测试时,起初我用aplay播放小的wav文件,但是很快就结束了,后来改用mpv播放我喜欢的梁祝音乐,整个乐曲的长度大约4分多钟,足够测试用了。
2025-05-14 10:43:20
749
原创 光速角逐——纳秒级优化训练营(2025北京站)
DRAM组织、通道、Rank、Bank、行、列、DIMM、工作频率、传输率、页表结构、页表项、页错误、Major Fault和Minor Fault、页错误导致的延迟、大内存页原理、Linux系统的大内存页支持、分配大内存页、评估大页的性能、案例分析之DPDK、配置大内存页。前端、神秘的微码、MSROM (microcode sequencer ROM)、解码单元、分支预测单元(BPU)、微指令缓存、微指令队列、重命名、调度和发射、执行引擎、Golden Cove的执行端口。
2025-04-29 20:00:30
1117
原创 安装UBUNTU时遇到的黑手
泰勒当时使用的机器叫沈括,上面是双硬盘,坏的硬盘不能单独启动,另一个硬盘上又有别的系统。很快,我复现了泰勒说的缓慢问题,当我选择键盘布局,点击下一步时,下一个安装界面并没有很快出现,过了几分钟之后也还是如此。这是发生在上上周的一个故事,4月11日(周五),同事泰勒在构建安卓新镜像时遇到障碍,看到很多文件系统错误,怀疑硬盘坏了。UBUNTU,这是一个比较简单的任务,顺利的话,从准备安装U盘到安装完毕,10分钟左右就搞定了。基于这样的前提,我怀疑是安装优盘没有做好,重新下载安装文件,制作安装优盘。
2025-04-20 12:40:04
372
原创 0与1的诗意栖居:二进制田园探秘回顾
大家分工协作:有的用铲子挖坑,有的小心翼翼扶正树苗,有的负责培土压实。这堂课生动展现了不同年龄段孩子的学习差异,但可贵的是,每个孩子都在自己的认知水平上获得了新收获——有的掌握了基础运算,有的理解了数据类型,有的则探索到了更高级的数学运算。当夕阳为农庄披上金色的外衣,我们知道,这不仅仅是一次活动,更是一颗等待发芽的种子——对自然的热爱,对知识的渴望,都将随着季节的生长而愈发茁壮。孩子们带着满满的收获踏上归途——第一次编程的成就感,认识蔬菜的新奇体验,蹦床上的欢腾雀跃,还有喂食小动物时的温暖互动。
2025-04-15 15:30:12
831
原创 信创SOC调试不应该只靠串口
工欲善其事,必先利其器,好的调试工具不仅可以提升调试效率,快速解决难缠的bug,节约宝贵的产品研发和交付时间,而且有助于软件工程师的技术成长,可以更深刻的理解软硬件技术栈,不仅知其然而且知其所以然,对公司来说有利于提升软件质量,对个人来说有利于职业发展。或者说,高昂的价格让基于硬件调试器的正规调试方法被边缘化了,而本来只应该起辅助作用的串口打印却成了主要的调试手段。概言之,串口打印是一种辅助的调试方法,它的调试能力和效率是无法与基于硬件调试器的。正心诚意,格物致知,以人文情怀审视软件,以软件技术改变人生。
2025-04-07 15:30:21
357
原创 SU7之难七日七问
上面这幅图来自远方青木的文章,可能不够准确,但是它可以非常清楚的反映很多基本的问题,比如事故现场的基本格局到底怎么样,关键的撞击点到底是哪里,NOA辅助驾驶和人员接管的位置,这个位置与撞击点的距离有多少,这个距离对于人类司机来说,是否有可能化险为夷?SU7这次的交通事故,代价沉重,引发全社会关注,无论是事故的直接关系方,还是社会公众,都期待着警方的调查结果,完整的调查结果需要更久的时间,但是是不是可以逐步把平面图这样的基本信息先公布出来,以不辜负大家口里和心里的那句“等待警方调查”?难道它们不值一提么?
2025-04-04 11:42:47
1004
转载 让孩子拥有自己的专属AI电脑
幽兰本的操作系统使用代表技术潮流的LINUX内核(5.10版本),并在用户空间安装了大量的GNU自由软件,预装了种类繁多的开发工具以及流行的开源软件,包括GNU工具链、Visual Code、调优工具、内核头文件等,非常适用于编程的学习和研究。让我们共同努力,确保每个孩子都能拥有探索未知世界的工具和机会,因为他们的想象力与创造力,终将塑造我们共同的未来。答案显而易见——今天的孩子们。格蠹科技的幽兰本,拥有超强性能和超长的待机时间,其全金属的外壳、简洁明快的设计、实惠亲民的价格,让其成为程序爱好者的首选。
2025-04-01 15:42:55
81
原创 信创SOC撸豹记
更为重要的是,他不仅有想法,而且有行动,他先是搞到一块信创SOC的开发板,然后是搞到一套罗德巴赫的硬件调试器,再然后是用罗德巴赫的TRACE32软件把信创SOC中断到调试器里,并且给我发了两张截图。亨特是随意触发中断,顺手做了截图,但其实,他的两张截图都是很有代表性的,两张截图反映的都是CPU在执行Linux内核代码的场景。使用树莓派3受挫后,我突然想起来一个很老的ARM7开发板,来自著名的“周立功单片机”,它的好处是有标准的JTAG口。亨特的两张截图激起了我的探索欲望,我问他用的什么接口。
2025-03-28 18:16:34
1089
原创 使用 NPU 加速 DeepSeek 推理
如今,从高校教授到中小学生,从科技工作者到普通百姓,DeepSeek 已成为不可或缺的智能助手,赋能千行百业,推动社会迈向智能化新时代。它的出现不仅是一次技术革新,更是一场深刻的社会变革。然而,当我们使用在线版大模型时,常常会遇到卡顿的现象。这是由于用户数量庞大,服务器负载过高,导致响应延迟。此外,在线大模型还存在隐私泄露的风险,因为用户数据需要上传至云端进行处理。相比之下,本地大模型展现出显著的...
2025-02-28 20:01:19
1248
原创 GPU高级调试与优化(2025上海站)
2025GPU上海站GPU高级调试与优化AI技术的高速发展让GPU红的如火如荼,而且这种趋势还在扩张,3D、计算机视觉、VR/AR、视频编解码等GPU应用百花齐放。但是从系统架构来看,GPU依然还处于外设的地位,还没有摆脱从属身份。因为这个根本特征,对GPU编程并不像对CPU编程那样直接,而调试和优化GPU软件的难度就更大了,要比CPU复杂很多。本研习班直面如何提高GPU工作效率这一目标,从硬件结...
2025-02-06 16:00:47
1250
原创 本地运行DeepSeek大模型
2025年的春节,比烟花爆竹还“火”的一样东西就是DeepSeek的R1大模型。前几天到湖州玩了几天。今天坐到电脑前的第一件事就是想亲自试试这个东西。先是在网页上聊了几句,感觉不过瘾。于是想自己安装在本地运行。打开幽兰代码本,先安装Ollama。Ollama是一个开源的大模型推理软件。并且具有非常好的模型管理功能。我先是使用Ollama官网的安装脚本,但是在下载软件包时出错:geduer@ulan...
2025-02-03 21:57:45
1090
原创 U-BOOT的本地控制台输出
U-BOOT是伴随Linux成长起来的引导程序(Boot Loader),以代码短小精悍,功能灵活强大著称。虽然它支持包括比如Power PC和X86在内的很多种CPU,但是在ARM上使用的最广泛。比如幽兰代码本最初使用的就是U-BOOT。2023年年初,幽兰本增加了UEFI支持,但使用了一段时间后,又改为默认预装U-BOOT了。曾经改用UEFI的主要原因有两个:一个是支持Windows,另一个是...
2025-01-27 16:58:54
1051
转载 编程是数学的抽象
编程是数学的抽象AB最近有一位家长在群里贴了一道数学题,是这样的:甲一分钟能洗3个盘子或9个碗,乙一分钟能洗2个盘子或7个碗,甲、乙合作,20分钟洗了134个盘子和碗,问有几个盘子几个碗?这位家长觉得这个题目可以通过编程来求解。首先要说明的是,这位家长很厉害,原来不懂编程,但跟在孩子后面听了一段时间,现在已经懂很多了,虽然不一定能写出代码,但那种编程的感觉和思维已经有了。我正在写 GESP 二级教...
2025-01-10 09:07:28
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅