自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 深度学习专题:模型训练的张量并行(一)

本文介绍了深度学习中的张量并行技术,重点分析了两种切分方式:行并行和列并行。行并行将权重矩阵按行拆分到不同设备,输入矩阵随之按列拆分,通过all-reduce聚合结果;列并行则将权重矩阵按列拆分,输入保持不变,通过all-gather聚合输出。两种方法都能有效减少单个设备的显存占用,并利用多设备并行计算加速模型训练。

2025-12-17 14:49:38 142

原创 深度学习专题:模型训练的数据并行(三)

本文介绍了深度学习模型训练中的数据并行优化技术ZeRO系列。

2025-11-04 16:11:26 601

原创 深度学习专题:模型训练的数据并行(二)

本文详细介绍了深度学习分布式训练中的Ring All-Reduce梯度同步算法。该算法采用环形通信结构,分为Scatter-Reduce和All-Gather两个阶段:首先将梯度分块进行累加计算(各GPU负责不同参数块),然后广播完整的累加结果。通过四块GPU和9个参数的实例演示,文章展示了完整的通信流程,包括4次通信完成梯度聚合和广播。Ring All-Reduce的优势在于通信量不随设备数增加而显著增长(N个设备只需2×(N-1)次通信),特别适合大规模参数同步场景。

2025-10-31 16:02:35 448

原创 MySQL EXPLAIN 中的七种 type 类型详解

本文深入解析MySQL EXPLAIN命令中的七种type类型,从最优的system到最差的ALL,详细说明每种类型的特点、使用场景和优化建议。通过性能对比表和实战案例,帮助开发者理解查询性能差异,掌握如何通过添加索引、优化连接条件等方式提升SQL查询效率,特别强调避免全表扫描和合理使用覆盖索引的重要性。

2025-09-22 18:32:44 824

原创 深入 Linux 文件系统:从数据存储到万物皆文件

本文系统介绍了Linux文件系统的核心原理与运行机制。首先从最小模型出发,阐述元数据区(inode表、位图)与数据区的协作方式;接着分析目录结构、文件操作流程及软硬链接区别;然后讲解日志文件系统如何确保数据一致性;进而剖析现代文件系统(如ext4)的块组优化设计;最后揭示虚拟文件系统(VFS)如何实现"一切皆文件"的抽象。通过层次化视角,展现了从系统调用到硬件写入的完整数据流,帮助读者全面理解Linux文件系统的高效性与可靠性。

2025-09-11 17:31:23 1328

原创 深入浅出:揭秘硬盘的物理与逻辑结构

硬盘数据存储的核心在于物理与逻辑结构的协同工作。物理上,数据通过盘片、磁道、扇区和柱面组织;逻辑上,操作系统将硬盘抽象为分区,并通过MBR引导和管理。进一步格式化创建文件系统,利用iNode表、位图等元数据结构高效管理数据块。整个过程从物理定位到逻辑抽象,实现了数据的精确存储与快速访问。

2025-09-11 09:34:26 1046

原创 SQL 中 WHERE 与 HAVING 的用法详解:分组聚合场景下的混用指南

SQL中WHERE与HAVING子句的区别与配合使用。WHERE用于分组前过滤单行记录,HAVING用于分组后过滤聚合结果。两者在分组查询中协同工作:先WHERE过滤原始数据,再GROUP BY分组,最后HAVING筛选分组结果。常见误区包括WHERE中使用聚合函数和HAVING引用非分组列。HAVING本质是对分组结果做WHERE过滤,也可用子查询+WHERE替代。合理混用这两个子句能编写高效精确的聚合查询。

2025-07-31 16:41:25 425

原创 MySQL 查询中的 UNION、UNION ALL 和 DISTINCT

MySQL查询中的UNION、UNION ALL和DISTINCT三者的区别与使用场景: UNION:合并结果集并自动去重,适合需要合并多表数据且去除重复记录的场景,但性能较低。 UNION ALL:合并结果集但保留所有行(包括重复),性能优于UNION,适合确定没有重复或需要保留重复的情况。 DISTINCT:仅用于单表查询去重,会影响查询性能,大数据量时考虑用GROUP BY替代。 实际应用中应根据是否需要去重、合并结果集等需求选择合适的方法,并注意列匹配和ORDER BY语句的位置。

2025-07-31 16:12:49 478

原创 深度学习专题:模型训练的数据并行

本文介绍了深度学习中的关键并行技术,重点探讨了数据并行方法。数据并行通过将模型复制到多个GPU上并拆分训练数据,实现了加速训练过程。文章详细阐述了数据并行的工作流程,包括模型分发、数据拆分、并行计算和梯度同步等步骤。通过单层全连接网络的算例验证,证明了数据并行的数学正确性:将4个样本平分给2个GPU后,梯度同步结果(7.5)与单卡完整批量计算完全一致。数据并行有效解决了大规模模型训练时单GPU计算能力不足的问题。

2025-07-31 10:06:34 1216

原创 SQL 连接类型示例:内连接与外连接

本文介绍了SQL中四种主要的连接类型及其区别。通过员工表和部门表的示例数据,展示了每种连接的实际效果:内连接只返回匹配行;左连接保留左表全部记录;右连接保留右表全部记录;全连接保留两表所有记录。最后总结了关键区别:内连接仅匹配行,左/右连接分别保留左/右表全部数据,全连接保留两表所有数据。特别指出MySQL不支持全连接,但可通过组合左/右连接实现类似功能。

2025-07-30 15:28:16 554

原创 MySQL 并发控制之锁机制 —— InnoDB 当前读(SELECT FOR UPDATE / SELECT LOCK IN SHARE MODE)加锁策略总结

*MySQL 并发控制之锁机制 —— InnoDB 当前读(SELECT FOR UPDATE / SELECT LOCK IN SHARE MODE)加锁策略总结****1. 隔离级别的影响****2. 索引类型的影响****(1) 主键(Primary Key)或唯一索引(Unique Key)****(2) 非唯一索引(Secondary Index)****(3) 无索引(全表扫描)****3. 查询类型的影响****(1) 等值查询(`=`)**

2025-07-29 14:02:13 782

原创 浅谈 Redis 数据类型

Redis 的是二进制安全的,可以用来存储等数据。适用于存储等任意二进制安全的内容SETGET nameMGET:可存储图片、序列化对象等任意数据:短字符串用embstr编码(内存连续),长字符串用raw编码当key时,设置其值为value,并返回OK(成功);若key已存在,则不做任何操作,返回nil(失败)为防止锁持有者崩溃后锁无法释放,需设置超时(通过EXPIRE任务完成后,主动删除键以释放锁(通过DEL**【风险1】**若SETNX成功,但EXPIRE未执行(如客户端崩溃),锁会永久占用SET。

2025-05-13 15:07:06 940

原创 用 Java 实现 哲学家就餐问题

这篇文章分析了死锁产生的条件,并使用 Java 实现经典的哲学家就餐问题以复现死锁,并给出解开死锁的解决方案。

2025-05-09 15:42:38 663

原创 用 Java 实现一个简单的阻塞队列

这篇文章分析阻塞队列的实现原理,并给出基于单锁 & 单条件变量的实现方案

2025-05-09 11:04:55 387

原创 创建型设计模式之:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式

创建型设计模式之:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式

2025-04-25 15:45:14 1371

原创 聊聊 JUC 下的 CountDownLatch、CyclicBarrier、Phaser 和 Semaphore

聊聊 JUC 下的 CountDownLatch、CyclicBarrier、Phaser 和 Semaphore

2025-04-16 22:03:17 1081 1

原创 聊聊 Redis 的一些有趣的特性(上)

聊聊 Redis 的持久化和缓存设计模式

2025-03-15 16:30:24 1156

原创 浅谈 Java 并发编程中的线程安全问题(上)

浅谈 Java 并发编程中的线程安全问题(上)

2025-02-25 20:28:05 1129

原创 Java 网络 I/O 编程:同步阻塞 I/O,同步非阻塞 I/O 和 I/O 多路复用

Java 网络 I/O 编程:同步阻塞 I/O,同步非阻塞 I/O 和 I/O 多路复用

2025-02-25 20:25:31 1291

原创 网络安全专题:数据加密技术、免密登录技术、数字签名、数字证书、安全套接字 SSL 与 HTTPS 协议

网络安全专题:数据加密技术、免密登录技术、数字签名、数字证书、安全套接字 SSL 与 HTTPS 协议

2025-02-22 16:50:37 1260

原创 Java 实现五种单例模式:饿汉式、懒汉式、双重检查锁定、静态内部类和枚举类

Java 实现五种单例模式

2025-02-18 17:33:15 1066

原创 聊聊数据库索引

聊聊数据库索引

2025-02-18 11:40:34 1207

原创 Java NIO 之 零拷贝技术(上)

CPU、I/O 接口和 DMA 控制器协作读写硬盘数据和网络数据

2025-02-12 21:56:06 688

原创 做一个 SpringBoot 起步依赖

通过做一个 SpringBoot 起步依赖大致了解 自动配置原理

2025-02-12 21:52:45 1117

原创 浅谈 Java 虚拟机(上)

浅谈 Java 虚拟机(上)

2025-02-11 11:36:42 733

原创 数据库事务(上)

数据库事务的概念、四大特性、隔离级别

2025-01-25 18:48:24 809

原创 操作系统基本概念

操作系统基本概念,包括操作系统功能、运行机制等

2025-01-25 18:43:22 316

原创 linux yum 仓库 配置文件 阿里云镜像

【代码】linux yum 仓库 配置文件 阿里云镜像。

2024-12-10 14:37:26 602

原创 IP 地址

当 DHCP Discover 报文到达路由器时,路由器会将源 IP 地址改为自己的 IP 地址,将目标 IP 地址改为 DHCP 服务器的 IP 地址,然后将报文定向发送给 DHCP 服务器。例如 192.168.1.2 和 192.168.2.2 的子网掩码是 255.255.255.0,它们在不同网段,但是由于子网掩码设置错误(例如设置成 255.255.0.0),在通信时,计算机判断它们在同一网段,从而发送 ARP 广播请求目标计算机的 MAC 地址,这当然会失败,因为路由器不转发 ARP 广播。

2024-12-04 17:59:01 2322

原创 使用 IDEA 模拟 Git 合并冲突

【代码】使用 IDEA 模拟 Git 合并冲突。

2024-10-25 16:39:23 2157 1

空空如也

空空如也

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

TA关注的人

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