自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

腾TO的技术博客

聚焦AI时代的人机交互

  • 博客(114)
  • 收藏
  • 关注

原创 设计模式[8]——组合模式一分钟彻底说透

将对象组织成树形结构,以完全一致的方式对待单个对象(叶子)和组合对象(树枝),客户端代码彻底无感——“部分与整体一个样”。

2025-12-12 17:49:30 64

原创 构筑 AI 理论体系:深度学习 100 篇论文解读 第十六篇:自适应优化的泛化性修正——AdamW (2017)

作者国籍机构(2017 年时)核心贡献德国优化和自动机器学习专家,AdamW 的第一作者。德国自动机器学习 (AutoML) 领域专家。信息项详情论文题目发表年份2017 年出版刊物核心命题如何将权重衰减从梯度更新中正确地分离出来(解耦),从而让自适应优化器 (如 Adam) 能够像 SGD 一样有效地进行正则化?

2025-12-12 17:08:10 287

原创 《你真的了解C++吗》No.005:表达式求值顺序的黑洞——深入理解序列点

C++ 追求极致的性能和对硬件的控制权,因此它不会对所有表达式的求值顺序做出严格保证。未定义行为(Undefined Behavior, UB)。如果你不知道什么是序列点(Sequence Point),或者认为只是结果不确定而不是错误,那么你正在与 C++ 最大的敌人打交道。如果在一个完整的表达式内,对同一个对象的修改操作发生了多次,并且这些修改之间没有序列点,那么结果就是未定义行为 (UB)。理解为什么以下代码是 UB,是掌握序列点的关键。序列点是 C++03 运行时模型中确保代码行为可预测的底层机制。

2025-12-12 16:54:02 327

原创 《你真的了解C++吗》No.004:C++中“初始化”的十种方式——为什么列表初始化很重要(即使在C++03中)?

当使用带空括号的声明来定义一个对象时,C++ 编译器会优先将其解析为一个函数声明。// 编译器解析:这是一个名为 w 的函数,它不接受参数,返回一个 Widget 对象。Widget w;// 编译器解析:这是一个名为 w 的对象,使用默认构造函数默认初始化。如果你意图定义一个对象,但使用了Widget w();这样的语法,你实际上并未定义对象,而是声明了一个函数。在后续代码中尝试使用w作为对象会导致编译错误。最常见的陷阱之一是局部(栈上)内置类型的默认初始化。

2025-12-12 16:07:16 726

原创 渲染管线本质谈第五讲:从 glVertexPointer 到 Mesh Nodes:顶点处理 30 年权力转移实录

顶点处理 (Vertex Processing) 是渲染管线中从应用阶段接收数据后,GPU 执行的第一个主要阶段。这个阶段的职责远不止于坐标变换,它决定了场景的几何细节、光照准备,以及最终的渲染性能。下一讲,我们谈谈**《渲染管线本质谈第 06 讲:可编程剔除 2025 终极方案:Meshlet Culling 在所有平台的真实性能对比》**等大规模几何渲染技术的硬件级响应,它彻底改变了 CPU 准备几何数据的方式,是未来渲染架构的关键基石。,并为后续的光栅化阶段准备好必要的。

2025-12-12 15:18:04 544

原创 C++ 的本质·第8篇 现代 C++ 的三大支柱:Concepts、Ranges、Coroutines

C++20 的发布,标志着 C++ 彻底告别了 C++98/03 的遗留问题,进入了一个的新时代。Concepts、Ranges、Coroutines 这三大支柱,解决了困扰 C++ 开发者数十年的痛点,使 C++ 从“能用”进化为“好用”。

2025-12-12 14:45:28 465

原创 C++ 现代之路(八):C++23 新标准库与实用特性:expected、mdspan、stacktrace

是一个类似类型为T,表示操作成功的结果。类型为E,表示操作失败的原因(错误码或错误对象)。优势描述显式错误函数签名(如)立即告诉调用者:这个函数可能失败。类型安全成功和失败的信息是强类型的,不会混淆。零开销默认情况下,它没有动态内存分配,行为类似 union/struct,与异常相比开销极低。是一个非拥有的多维数组视图。它的设计与和std::span它不管理底层数据(数据可以是、原生 C 数组等)。它提供了数据的维度 (Dimensions)、每个维度访问的步长 (Strides)和。

2025-12-12 14:40:53 357

原创 《Unreal 对 C++ 做了什么》系列 02. Unreal Header Tool (UHT) 工作原理与代码生成

Unreal Header Tool 是 UE C++ 魔法的源头。它让 C++ 获得了在运行时定义自己的能力,是连接编译期 C++ 世界和运行时引擎世界的关键桥梁。理解 UHT 如何工作,可以帮助你避免许多编译陷阱,并更有效地利用 UE 的反射特性。《03. UCLASS:UE 类的核心扩展与属性详解》,我们将把注意力从宏和工具转移到具体的核心类定义上,看看UCLASS()宏赋予 C++ 类的强大生命力。

2025-12-12 11:53:03 536

原创 《Unreal 对 C++ 做了什么》系列 03 UCLASS:UE 类的核心扩展与属性详解

UCLASS是 Unreal C++ 的心脏。它通过 UHT 注入元数据,将标准的 C++ 类升级为拥有运行时身份、被CDO模板化、并被引擎托管的“公民”。掌握CDO 概念和引擎生命周期调度,是你高效进行 UE 游戏开发的第一步。《04. USTRUCT 与 UPROPERTY:数据结构的反射化与变量管理》,我们将焦点从类定义转移到具体的成员变量和数据结构上,看看UPROPERTY如何管理数据和暴露给编辑器。

2025-12-12 10:40:18 430

原创 构筑 AI 理论体系:深度学习 100 篇论文解读 第十五篇:修正 Adam 的理论缺陷——AMSGrad (2018)

作者国籍机构(2018 年时)核心贡献印度/美国优化理论专家,AMSGrad 的第一作者。加拿大著名深度学习研究者,Yoshua Bengio 的兄弟。信息项详情论文题目发表年份2018 年出版刊物核心命题如何修正 Adam 优化器中自适应学习率部分的非递增性缺陷,从而在理论上保证优化器的收敛性?

2025-12-12 10:18:30 516

原创 《智能座舱时代:车载HMI渲染引擎的选型、架构与实践》 第 2 章:核心图形 API 选型:Vulkan 与 OpenGL ES 的对决

虽然从 OpenGL ES 迁移到 Vulkan 意味着更高的开发复杂度和更陡峭的学习曲线,但 Vulkan 提供的显式控制、多线程能力和低运行时开销,恰恰是解决车载座舱功能安全、实时确定性和高性能这“不可能三角”的关键技术路径。下一章,我们将结合这两种 API 的特性,深入探讨主流商业引擎 Unity 和 Unreal Engine 如何在底层架构上进行改造,以适应车规级 RTOS 环境。

2025-12-12 10:17:23 409

原创 《智能座舱时代:车载HMI渲染引擎的选型、架构与实践》第 1 章 车载座舱对渲染的特殊要求

车载渲染引擎的设计必须在三个相互矛盾、无法同时达到极致的约束之间寻求最佳平衡点。我们将其概括为**“不可能三角”**:渲染引擎的最终设计和性能DDD设计目标Dω安全⋅ASILω实时⋅确定性ω性能⋅高保真\text{设计目标 } D = \omega_{\text{安全}} \cdot \text{ASIL} + \omega_{\text{实时}} \cdot \text{确定性} + \omega_{\text{性能}} \cdot \text{高保真}设计目标。

2025-12-11 17:58:59 813

原创 《智能座舱时代:车载HMI渲染引擎的选型、架构与实践》前言

在汽车工业正在经历的百年未有之大变局中,智能电动汽车已经从传统的交通工具,升级为集于一体的“第三空间”。在这场深刻的变革中,无疑成为了用户感知新价值、定义品牌差异化的核心战场。座舱体验的优劣,很大程度上取决于其的表现力、流畅度和稳定性。而支撑这一切的,正是隐藏在代码深处的。它不再仅仅是用来绘制导航地图或收音机界面的工具,它必须实时、精确、安全地呈现车辆状态、环境信息,甚至创造出令人惊叹的体验。

2025-12-11 17:50:09 249

原创 轻历史·第十一讲:Docker

Docker的本质从来不是一个容器技术,而是人类有史以来第一次把“软件运行环境”做成了可复制、可版本化、可交易的数字资产。Solomon Hykes只做对了一件事:他把“在我机器上能跑”这句程序员的终极谎言,变成了“我给你发一个Docker镜像,你直接run就行”这句程序员的终极真香。2013年3月20日之前,部署是玄学。2013年3月20日之后,部署成了复制粘贴。结果:全世界程序员集体从“部署地狱”升了天,全世界运维集体下岗再就业(转岗学K8s)。

2025-12-11 17:42:32 473

原创 微传记【7】——程序员圣经之父:高德纳(Donald Knuth)

下一讲:微传记【8】——Unix之父:肯·汤普森(Ken Thompson),那个在废旧PDP-7上敲出第一行Unix代码、顺便发明UTF-8、拿图灵奖时却说“我只是想玩太空旅行”的人。这套被全世界程序员称为“Knuth”或“TAOCP”(The Art of Computer Programming)的书,那套书已经出了五卷(第1、2、3、4A、4B),总厚度超过4000页,1977年,他45岁,看不惯当时论文排版的丑陋,决定自己动手。他说:“等它趋向π的时候,就说明软件已经完美,不需要再改了。

2025-12-11 17:34:45 202

原创 轻历史·第十讲:Wi-Fi

Wi-Fi的本质从来不是“无线网卡”,而是人类有史以来最大规模的“意外科技扩散”案例。1992年,一群澳洲人想找黑洞没找到,结果把地球上所有咖啡馆、机场、厕所、飞机、冰箱、牙刷……全连上了网。它只做对了一件事:把“上网”这件事,从“插线”变成了“呼吸一样自然”。1997年之前,我们被网线拴在桌子前。1997年之后,网线成了博物馆展品,而澳洲天文学家成了隐形首富。下一讲第十一讲:Docker——2013年一个晚上写的5行代码,10年后让全世界程序员从“部署地狱”彻底解脱。

2025-12-11 17:28:20 369

原创 《Unreal 对 C++ 做了什么》系列 01 UObject 的基石:GENERATED_BODY()宏的魔力

在标准 C++ 中,一个类的类型定义在编译后就消失了。但在 UE 中,每一个UObject派生类在内存中都有一个对应的 UClass实例。这是最关键的一步:在生成的文件中,会包含一个静态注册函数(例如),它通过 C++ 的静态初始化机制,确保在程序启动或模块加载时,UClass实例被强制构造出来并注册到引擎的全局类型系统中。还会注入一个关键的公有静态函数。当你调用时,你就是在获取这个已经完成初始化和注册的UClass对象。这个UClass实例存储了你的类在运行时所需的所有信息:父类信息、所有。

2025-12-11 16:10:20 364

原创 《Unreal 对 C++ 做了什么》系列 第零篇:总纲

和。

2025-12-11 15:59:43 388

原创 《你真的了解C++吗》No.003:const的语义链——深度剖析“常量正确性”

只能安全地移除最初不是以const方式定义的变量的const属性。如果一个对象最初是用const定义的(例如),然后你用const_cast去除const并试图修改它,将导致未定义行为。这可能因为编译器将常量放在只读内存区,或对常量值进行了激进优化。const。

2025-12-11 15:52:41 355

原创 渲染管线本质谈第四讲:应用阶段深度剖析:CPU 如何喂饱 GPU 这头怪兽

策略目标核心机制核心 API 术语消除 Draw Call 瓶颈降低驱动程序调用开销命令缓冲区 (Command Buffer)批量提交充分利用多核最大化 CPU 并行效率多线程录制,次级命令缓冲区指令复用消除静态物体重复录制开销ExecuteBundleExecuteBundle终极卸载将剔除和指令生成转移给 GPU间接执行 / 间接命令缓冲区DrawIndirectDrawIndirect。

2025-12-11 15:43:52 342

原创 设计模式[7]——桥接模式一分钟彻底说清楚

把两个(或多个)会独立变化的维度彻底拆开,用“组合 + 指针”搭一座活桥,让它们各自扩展,永不爆炸。当你发现一个类要同时承担“两种会独立变化的责任”时,立刻把它拆成两条平行继承链,用一个指针搭一座桥 —— 这就是桥接模式。现在,桥接模式在你脑子里彻底和“普通多态”区分开了吧?这篇绝对是一分钟说透、再也不困惑!

2025-12-11 15:23:13 138

原创 《你真的了解C++吗》No.002. 宏的真正威力与陷阱:预处理器是如何工作的?

在 C++11 之前,宏是许多功能的权宜之计被const和enum class取代。被inline函数和函数模板取代。仍在使用,如或头文件卫士。和##在某些低层系统编程和元编程中仍有特殊用途。宏赋予了 C++ 极大的灵活性,但在 C++03 时代,其类型不安全和副作用是导致 Bug 的主要根源之一。离开了原始内存与宏,我们将进入 C++ 类型系统的基石:const关键字。它如何实现复杂的语义链,确保代码的“常量正确性”?➡️003.const的语义链 (The Semantic Chain of。

2025-12-11 14:54:04 435

原创 C++ 的本质·第7篇 面向对象 vs 泛型 vs 数据导向:C++ 的三种灵魂

C++ 的强大在于它是。理解 C++ 的精髓,在于掌握何时该用面向对象(OOP)、何时该用泛型(GP)、以及何时必须采用数据导向(DOP)来榨取极致性能。

2025-12-11 14:39:09 291

原创 C++ 现代之路(七):C++ 并发与同步的现代化——从 `std::jthread` 到 `std::latch`

现代线程的首选,通过RAII自动join。实现协作式中断,通过join()保证优雅退出。std::latch等待所有任务完成(初始化同步)。等待一轮计算完成(并行步进)。对非原子对象的单个成员提供原子操作,实现精细化并发控制。

2025-12-11 14:26:05 358

原创 构筑 AI 理论体系:深度学习 100 篇论文解读 第十四篇:归一化的轻量化方案——权重归一化 Weight Normalization (2016)

作者国籍机构(2016 年时)核心贡献荷兰OpenAIWN 的第一作者,专注于生成模型和优化。荷兰Adam优化器的共同提出者,变分自编码器 (VAE) 的主要贡献者。信息项详情论文题目发表年份2016 年出版刊物核心命题如何通过重新参数化权重WWW,将其解耦为方向向量vvv和标量范数ggg,从而在不引入额外批量依赖的情况下,加速梯度下降的收敛速度?

2025-12-11 09:58:21 574

原创 构筑 AI 理论体系:深度学习 100 篇论文解读 第十三篇:ReLU 的定制化初始化——Kaiming/He 初始化 (2015)

作者国籍机构(2015 年时)核心贡献Kaiming He (何恺明)中国Kaiming 初始化Xiangyu Zhang (张向予)中国ResNet 团队核心成员信息项详情论文题目发表年份2015 年出版刊物核心命题如何设计一个权重初始化策略,能够补偿 ReLU 激活函数导致的方差损失,从而确保信号在超深 ReLU 网络中的稳定传播?

2025-12-11 09:57:53 677

原创 NVIDIA GPU 发展历程里程碑(1999 年至今)

从“图形”到“通用计算”的转变:确立了 GPU 作为图形处理器 (Graphics Processor) 的身份。:NVIDIA 首次将计算卡独立命名,标志着 GPU 开始从只服务图形渲染转向服务通用计算(GPGPU),为后来的 AI 革命埋下伏笔。

2025-12-10 17:33:55 815

原创 轻历史·第九讲:GPU

GPU的本质从来不是“画画更快”,而是人类有史以来第一次把“并行计算”从实验室搬到量产芯片上。黄仁勋只做对了一件事:在所有人都在拼三角形的时候,他偷偷把显卡变成了“矩阵乘法机器”。游戏玩家花1599美元买4090是为了4K 240帧OpenAI、谷歌、字节花35亿美元买10万张H100是为了训练下一个GPT1999年8月31日之前,显卡是电脑的“外设”。1999年8月31日之后,GPU成了新世纪的“电力”。下一讲第十讲:Wi-Fi。

2025-12-10 17:25:00 689

原创 C++ 现代之路(六):C++20 核心支柱(下)—— Concepts 与 Ranges 库

Concepts (概念)是一种对模板参数施加语义约束的机制。它允许开发者直接、清晰地表达对模板参数的要求。核心作用:将模板参数的要求直接写在签名中。如果模板参数不满足约束,编译器会直接报告“类型不满足概念X”,而不是输出长串的实例化失败信息。使用concept关键字和requires表达式来定义一个概念。// 定义一个名为 'EqualityComparable' 的概念// requires 表达式列出了 T 必须支持的操作// 要求 a == b 必须是有效的表达式,且结果类型为 bool。

2025-12-10 15:16:55 865

原创 C++ 的本质·第6篇 异常安全与错误处理

异常安全是一种保证。它承诺:即使在某个操作过程中抛出了异常,系统状态也能维持在可预测的无损害的状态。

2025-12-10 14:53:57 583

原创 设计模式[6]——适配器模式,一分钟彻底说清楚

适配器模式 = 给老东西插一个“转换头”,让它假装成新东西,继续被新代码愉快使用!我们不想改几百个老调用,也不让新系统改接口 → 只能上适配器!适配器模式,30秒看懂,工作中天天用!注册用户,但老系统只有。

2025-12-10 13:20:33 108

原创 《你真的了解C++吗》No.001 原始内存模型

特性mallocfree(C 视角)newdelete(C++ 视角)处理对象否,仅处理原始内存。是,管理对象生命周期。构造/析构否,需手动/ 显式调用析构函数。是,自动调用析构。类型安全否,需手动sizeof(T)和强制转换。是,自动计算和返回正确类型。错误处理返回NULL。默认抛出异常。机制名称C 标准库函数。C++ 语言操作符,可重载(在下一篇文章中,我们将讨论mallocnew经常配合的机制——宏。宏是 C++ 对 C 语言的另一个巨大妥协,但它带来的威力与陷阱远超你的想象。➡️。

2025-12-10 11:20:45 537

原创 构筑 AI 理论体系:深度学习 100 篇论文解读 第十二篇:深度学习的圣经——《Deep Learning》综述 (2015)

作者国籍机构(2015 年时)核心贡献Yann LeCun法国/美国CNN、BP 工程化、LeNet加拿大DBN、自编码器、GAN英国/加拿大RBM、DBN、反向传播、Dropout信息项详情论文题目发表年份2015 年出版刊物Nature核心命题深度学习到底是什么?它如何工作?它解决了哪些问题?未来的研究方向在哪里?论文明确指出深度学习的核心在于层次化的特征表示 (Hierarchical Representation)。

2025-12-10 10:21:43 598

原创 构筑 AI 理论体系:深度学习 100 篇论文解读 第十一篇:初始化基石——Xavier/Glorot 初始化 (2010)

作者国籍简介法国Bengio 的学生,主要在表示学习和初始化方面做出重要贡献。加拿大深度学习三巨头之一,Xavier 初始化的共同提出者。信息项详情论文题目发表年份2010 年出版刊物核心命题如何选择初始权重WWW的方差,以确保在前向和反向传播过程中,激活值和梯度的方差在各层之间保持一致?

2025-12-10 10:10:21 653

原创 构筑 AI 理论体系:深度学习 100 篇论文解读——第十篇:训练的稳定器——批量归一化 Batch Normalization (2015)

作者国籍简介俄罗斯/美国Google 研究员,BN 的第一作者。匈牙利/美国Google 研究员,GoogLeNet/Inception 架构的主要设计者之一。信息项详情论文题目发表年份2015 年出版刊物核心命题如何通过规范化网络层间的输入分布,缓解内部协变量偏移问题,从而实现网络的加速训练和更高稳定性?

2025-12-09 16:43:32 790

原创 C++ 的本质·第5篇 内存模型与并发

为什么 C++ 的内存模型仍是 2025 年最硬的并发标准?核心命题在 256 核 + CPU+GPU 异构时代,只有 C++ 敢把“弱内存模型下的 100% 正确 + 极致性能”同时交给程序员,而不是交给运行时祈祷。

2025-12-09 14:55:56 417

原创 设计模式[5]——单例模式一分钟彻底说清楚

全局有且仅有一个实例,不管你从哪儿拿,拿到的都是同一个对象。记住这三行代码,你已经秒杀 95% 程序员对单例模式的理解!:简单、天然线程安全(C++11 前后都安全)类加载时就立刻创建实例,“饿了就提前吃饱”。:启动就创建,即使你永远不用它。

2025-12-09 14:31:36 380

原创 构筑 AI 理论体系:深度学习 100 篇论文解读——第九篇:泛化性的核心保障——Dropout 正则化 (2014)

作者国籍简介加拿大/印度论文第一作者,Hinton 的学生,在深度学习正则化和优化方面有重要贡献。加拿大/英国深度学习三巨头之一,Dropout 的主要思想提出者之一,认为 Dropout 模拟了生物大脑的机制。信息项详情论文题目发表年份2014 年出版刊物核心命题如何在不增加计算复杂度的情况下,有效防止深度神经网络中的神经元协同适应(Co-adaptation),从而提高模型的泛化能力?

2025-12-09 14:07:45 496

原创 《侃AI不焦虑——大模型时代吹牛必会500名词》第0篇:前言总纲

欢迎来到《侃AI不焦虑》系列!在今天的职场中,AI大模型的能力正在以惊人的速度颠覆一切。无论是产品立项、项目排期、技术选型,还是汇报战略,你都无法避开那些晦涩难懂的**“AI黑话”和技术缩写**。本系列的目的只有一个:让你在与同事、客户、老板沟通时,能够精准地使用黑话,不再露怯,实现“侃AI不焦虑,吹牛更专业”的目标。

2025-12-09 13:59:56 226

原创 渲染管线本质谈第三讲:全平台资源生命周期与内存管理终极对比:Vulkan“不可能泄漏”是谎言,OpenGL 能泄 108 种姿势

Memoryless 模式允许将仅在 Tile 渲染过程中使用的附件(如深度/模板、临时MSAA Color)分配在 Tile 缓存而非主显存中,渲染结束后即可丢弃。下一讲直接开第四讲:《应用阶段深度剖析:CPU 如何喂饱 GPU 这头怪兽》?忘记销毁对象或管理 VMA 句柄是现代显存泄漏的主因。错误的销毁时机或上下文,导致驱动无法正确释放 GPU 资源。驱动层资源(GPU 实际分配的内存)是。的,但 GL 对象 ID 的释放逻辑是。极易导致性能灾难或功能异常。

2025-12-09 13:45:01 575

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除