每日HackerNews RSS

为了提升深度学习模型的性能,必须摒弃“炼金术”式的随机尝试,转而从第一性原理出发去理解系统的瓶颈。模型性能通常受限于以下三个要素之一: 1. **计算(Compute):** 执行实际浮点运算(FLOPS)所花费的时间。这是进行实际工作的“工厂”,最大化这一项是最终目标。 2. **内存带宽(Memory Bandwidth):** 在 GPU 与内存之间传输数据的“仓库”成本。大多数算子(如激活函数)都受限于内存,这意味着它们花费在搬运数据上的时间多于计算时间。**算子融合(Operator fusion)**——即将多个操作合并为一个以减少数据搬运——是解决此问题的最有效方案。 3. **开销(Overhead):** CPU(Python/PyTorch)用于管理模型而非执行内核所花费的时间。如果你的 GPU 在任务之间存在“空隙”,则说明受限于开销。这可以通过追踪(如 JIT、CUDA Graphs)来消除运行时的调度成本。 通过对模型进行性能分析,你可以确定具体的瓶颈所在: * **受限于开销?** 使用追踪或 JIT。 * **受限于内存?** 使用算子融合。 * **受限于计算?** 使用专用硬件(如 Tensor Cores)。 确定你所处的“瓶颈类型”,能让你停止盲目猜测,转而进行工程化优化。

在成功反汇编 8086 微代码后,作者与研究人员合作,着手攻克了复杂度高得多的 80386 ROM。8086 的反汇编工作有专利文档作为指引,而 80386 则是一个“黑盒”。通过使用高分辨率芯片显微图像、图像处理和人工智能,团队提取并交叉校验了 94,720 位的二进制数据。 解码 80386 需要识别微操作(μ-ops)、字段结构以及桶形移位器和保护单元等硬件接口的模式。与依赖微代码算法的 8086 不同,80386 使用了更多的硬件加速逻辑,微代码仅作为这些加速器的控制层。每一条指令,包括针对不同 CPU 模式和前缀的指令,均由微代码通过 215 个入口点提供支持。 该项目未发现隐藏的“复活节彩蛋”,但揭示了一个潜伏 40 年的 I/O 权限位图处理安全漏洞。完整的反汇编成果现已发布在 GitHub 上,为深入了解这款标志性处理器的架构提供了难得的机会。这一里程碑由作者与 Daniel Balsom、Smartest Blob、nand2mario 以及 Ken Shirriff 共同努力达成。

最近,由 *reenigne* 领导的对 Intel 80386 微代码的拆解工作被誉为一项里程碑式的成就,这是一项“艰巨”的逆向工程。该过程包括拍摄 CPU 晶圆的高分辨率图像,其中微代码以物理晶体管阵列的形式存储在只读存储器(ROM)中。 由于晶圆分层伪影和灰尘导致自动扫描出现错误,团队结合使用了卷积神经网络和细致的人工验证,将位区域分类为 0 或 1。在提取出原始位数组后,团队通过将数据与已知的硬件特性(例如匹配解码器 PLA 和特定的寄存器行为)相关联,推断出了内部微代码的格式。 最终成果是一种被翻译成 Verilog 的静态汇编语言,并成功运行了《DOOM》等应用程序。该项目揭开了 386 复杂且“工业化”架构的神秘面纱,特别是其保护模式操作,是硬件考古领域的一个重要里程碑。对于爱好者而言,这是深层系统工程的一个巅峰案例,突显了从 8086 易于理解的复杂性向定义现代计算的密集、严谨架构的过渡。

C# 正在演进其内存安全模型,从基于约定的假设转向由编译器强制执行的契约。借鉴 Rust 和 Swift 中流行的“不安全 (unsafe)”语义,C# 16 将引入一种正式模型,使不安全代码能够被显式识别、审查和约束。 **主要特性包括:** * **基于契约的不安全机制:** 成员签名上的 `unsafe` 关键字现在作为调用者契约。此类成员的调用者必须将调用包裹在内部的 `unsafe { }` 块中,从而有效地将义务沿调用链向上传递。 * **正式文档:** 每个 `unsafe` 成员都应包含一个 `/// <safety>` 块,用于记录调用者的义务。分析器会标记缺失的文档。 * **边界控制:** “不安全边界方法”可以通过运行时检查(如边界验证)来履行义务,从而抑制不安全性,使其能够从标准代码中安全调用。 * **编译器强制执行:** 该模型是一个可选的项目级设置。一旦启用,不安全代码若无显式标记将无法调用,从而为防止未定义行为提供了强有力的保护措施。 这一转变确保了内存安全成为 C# 开发中一种有意为之的架构设计,有助于更好地审计并更安全地集成高性能或可互操作的代码。预计在 .NET 11 中发布预览版,并在 .NET 12 中全面正式发布。

荷兰政府在相关报道披露微软(Microsoft)和Meta将欧洲公务员及学者的名单提供给调查“科技审查”的美国参议院委员会后,表示了“极度关切”。包括数字经济大臣威廉米恩·埃尔茨(Willemijn Aerdts)在内的荷兰官员谴责了这一泄露行为,并警告称相关人员可能面临报复性制裁或旅行禁令。荷兰政府已正式就此事向美国大使提出交涉。 被点名的人员包括荷兰隐私和竞争监管机构的工作人员,以及虚假信息研究人员。尽管舆论强烈不满,但荷兰官员承认,鉴于政府对美国云基础设施的高度依赖,目前终止与这些美国公司的合作并不现实。 此事件凸显了荷兰在数字主权方面持续存在的紧张局势;目前该国约67%的重要公共部门网站依赖美国云服务。由于美国《云法案》(Cloud Act)允许美国当局潜在地访问这些公司存储在海外的数据,这种依赖关系显得尤为敏感。尽管政府对此保持警惕,但仍需在利用必要的美国技术服务与保护其官员及数据免受外国监管之间进行艰难的权衡。

本资源是一个致力于阶乘函数 ($n!$) 及其数学相关领域的综合性知识库。它提供对理论层面与实际应用的深入剖析,涵盖了广泛的主题,包括: * **算法与编程:** 详尽记录了超过 20 种阶乘算法,包括“摆动阶乘”(swinging factorial)等高性能计算方法。该网站提供了多种编程语言(如 Julia、Scala、Go、Java、C++、SageMath 和 LISP)的源代码,并配备了能在数秒内计算大规模阶乘的基准测试工具。 * **数学理论:** 深入探讨了伽马函数(Gamma function)、阿达马伽马函数(Hadamard’s Gamma function)、二项式系数、双阶乘以及素阶乘。同时还涵盖了伯努利数与欧拉数、斯蒂尔杰斯连分数(Stieltjes’ continued fractions)以及组合排列等特殊应用。 * **历史与背景资料:** 考察了 $n!$ 符号的起源、函数的历史演变,以及关于数学术语的探讨。 * **交互式工具:** 用户可以使用高容量的在线计算器、近似公式,以及查看伽马函数和对数伽马函数的视觉呈现。 无论您是研究人员、寻求高效实现代码的开发人员,还是数学爱好者,本资源合集都是阶乘相关知识与计算实践的权威中心。

ArcBrush 是一款功能强大的节点式图像编辑器,注重用户控制权与离线功能。它内置了 75 款专业级工具(如遮罩、变形和滤镜),这些工具完全无需账户或网络连接即可运行,同时还提供可选的 AI 集成功能。 该软件独特的“图表”架构允许用户将 AI 视为普通节点来处理。AI 输出的内容可以连接至滤镜、与手动工具结合,或分流至并行工作流中。用户可以选择完全使用 AI、适度使用或完全不用。 对于有 AI 需求的用户,ArcBrush 支持多种高端模型,包括用于多图融合的 Gemini 驱动型“Nano Banana 2”、用于高保真生成与编辑的“FLUX.2”系列,以及用于背景移除和 4 倍超分辨率的实用工具节点。 AI 功能采用积分制且为可选配置,核心编辑器无需登录即可使用。新用户可获得 10 个免费积分以体验 AI 功能。无论是进行复杂的专业编辑还是快速且经济高效的生成,ArcBrush 都提供了一个灵活、无限制的工作空间,让图表始终处于核心地位。

批评人士认为,Bambu Lab 持续违反 PrusaSlicer 的 AGPL 许可协议,并依赖专有、闭源的网络技术,这反映了一个更深层次的问题:中国科技公司被强制纳入国家情报行动之中。 2017 年至 2023 年间颁布的五项中国法律构成了一套框架,使相关企业没有任何保持中立的余地。这些法律规定企业必须与情报部门合作,要求国家获取加密密钥,并赋予政府对数据的域外管辖权。此外,法律还规定必须直接向政府安全机构报告软件漏洞,而这些机构与国家利用“零日漏洞”的行为存在关联。 由于 3D 打印属于“中国制造 2025”计划中的指定战略产业,批评人士认为,Bambu Lab 不透明的网络架构很可能是国家级指令的结果,而非仅仅是疏忽大意。由于该公司在法律体系下运作,该体系排除了隐私保护并强制要求与国家共享数据,怀疑者们目前正在抵制该公司的硬件,并将该公司违反开源道德的行为视为国家安全和数据隐私面临重大风险的先兆。

**Rubish** 是一个完全用 Ruby 实现且完全兼容 Bash 的 UNIX Shell。它通过 Ruby 虚拟机解析并执行 Shell 语法,使得现有的 Bash 脚本无需修改即可运行。 除了兼容性,Rubish 还将 Ruby 深度集成到了 Shell 体验中: * **混合语法**:无缝混合 Shell 命令与 Ruby 代码。使用 Ruby 代码块、迭代器和表达式来实现条件判断(例如 `if { ... }`)或管道操作(例如 `ls.sort.uniq`)。 * **原生求值**:以大写字母或 Ruby 字面量开头的行会被直接求值。用户可以利用 Ruby 的强大功能来定义函数、提示符和逻辑。 * **性能优化**:提供 `lazy_load` 等特性,通过将繁重的初始化过程转移到后台线程,实现 Shell 的秒级启动。 * **开发者友好**:Rubish 可通过其公共 API 嵌入到 Ruby 应用程序中,非常适合开发自定义终端模拟器或 IDE 插件。它还包含类似 Zsh 的高级补全和路径展开等功能。 Rubish 可通过 Homebrew 或源码安装,支持作为登录 Shell 使用,并提供了一个安全的 `-r` 模式,可在执行不可信脚本时禁用 Ruby 功能。

这次采访介绍了开源咨询公司 Igalia 的开发人员 Yeunjoo 的职业生涯。她在 WebKit 和 Chromium 等网页浏览器引擎领域拥有 15 年的专业经验。 Yeunjoo 目前专注于企业级 Chromium 分支,负责实施专业的数据保护和策略控制。她强调,管理这些大规模的分支需要严格遵守上游的架构界限,以尽量减少变基(rebase)过程中的合并冲突。 回顾自己的职业历程,Yeunjoo 从以硬件为主的电子专业转向了软件工程,并最终在复杂的浏览器开发中找到了热情。她驳斥了“开源贡献门槛过高”的误区,指出 Chromium 社区非常欢迎新人,并鼓励他们通过小规模的渐进式重构任务入手。 她工作流程中的核心要点包括: * **测试文化:** Chromium 的演进依赖于严谨的自动化测试和测试驱动开发(TDD)理念。 * **AI 集成:** 她利用 Claude Code 等 AI 工具来处理庞大的 Chromium 代码库,不过她对过度依赖自动化智能体持谨慎态度。 * **成长:** 她将浏览器视为技术的“熔炉”,认为这里是作为 C++ 开发人员持续学习和专业成长的最佳环境。

更多

联系我们 contact @ memedata.com