自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 全开源的 agv 小车

全开源小车。

2023-06-30 16:38:21 2187

原创 摩西十戒

第一条:“我是耶和华-你的神,曾将你从埃及地为奴之家领出来,除了我之外,你不可有别的神。”第二条:“不可为自己雕刻偶像,也不可做什么形象仿佛上天、下地,和地底下、水中的百物。不可跪拜那些像,也不可事奉它,因为我耶和华-你的神是忌邪的神。恨我的,我必追讨他的罪,自父及子,直到三四代;爱我、守我戒命的,我必向他们发慈爱,直到千代。”第三条:“不可妄称耶和华-你神的名;因为妄称耶和华名的,耶和...

2019-01-11 17:57:25 3441 1

原创 python 实现 flash attention

本文实现了一个教学版的FlashAttention算法,通过分块计算和增量融合来优化注意力机制的内存访问效率。代码展示了如何将Q、K、V矩阵分块处理(Bc和Br为块大小),并逐步更新输出O、最大值m和归一化因子l。与标准注意力(standard_attention)相比,FlashAttention在保持数值精度的同时(误差<1e-5),显著减少了内存访问开销。该实现可根据SRAM大小(SRAM_size_M)自动调整分块策略,适用于大矩阵的高效计算。

2026-04-28 14:44:10 23

原创 ptx 代码解释

这段PTX代码实现了CUDA中计算线程坐标(row,col)的核心逻辑。它分为x和y两个方向计算,每个方向4条指令:首先将blockDim、blockIdx、threadIdx值加载到寄存器,然后通过乘加指令(mad.lo.s32)计算全局坐标。x方向计算列号(col=blockIdx.xblockDim.x+threadIdx.x),y方向计算行号(row=blockIdx.yblockDim.y+threadIdx.y)。这种分段计算方式体现了PTX作为低级中间表示的机械特性,与CUDA的高层抽象形成对

2026-04-22 11:25:10 346

原创 木棱堡策略 是不是 对应创业 建立 护城河

《木棱堡策略:商业护城河的野蛮生长法则》摘要 莫斯科公国用木棱堡扩张的军事智慧,揭示了创业公司构建护城河的核心逻辑:先以MVP(木堡)快速验证需求,通过"种城战术"形成产品矩阵网络,构建初期防御体系。关键在于同步发展"防守(木墙+火枪手)"与"进攻(哥萨克骑兵)"的双重能力——用护城河守住基本盘,以增长飞轮开拓市场。最终要将临时性的木堡升级为石制堡垒,把先发优势转化为结构性壁垒。这套在恶劣环境中野蛮生长的生存哲学,正是创业者在巨头环伺下杀出血路的实

2026-04-21 15:52:54 444

原创 蒙古人当年 是 如何控制 莫斯科的

杀死第一人格:蒙古的铁骑和屠城,彻底摧毁了基辅罗斯那种开放、浪漫、具有一定民主色彩的城邦文明(第一人格),让罗斯人明白,在绝对的暴力面前,道德和尊严一文不值。植入黑暗基因:蒙古人把莫斯科大公当成猎犬来养。莫斯科为了活下去,必须比其他公国更残忍、更狡诈、更善于揣摩主子的心意。莫斯科的中央集权、特务统治(后来的特辖军)、对暴力的崇拜,无一不是从蒙古主子那里学来的“黑暗生命力”。反噬主子:最讽刺的结局是,蒙古人为了方便统治,赋予了莫斯科代征贡赋和替天行道的特权;

2026-04-21 15:48:05 317

原创 为什么像 FlashAttention / GEMM 这种高性能 kernel,会“故意吃很多 register”,甚至降低 occupancy,但性能反而更高

高性能计算中,减少HBM访问比提高occupancy更重要。FlashAttention和GEMM通过增加寄存器使用,将中间数据保留在SRAM(寄存器/shared memory)中,显著减少了昂贵的HBM访问次数。虽然这会降低occupancy,但HBM访问的延迟(约400周期)远高于SRAM(约1周期),当数据需要多次使用时,SRAM缓存策略能带来10倍以上的性能提升。这种优化将计算从memory-bound转变为compute-bound,使得减少HBM访问的收益远高于增加并发线程的收益。这正是高性能

2026-04-21 14:45:53 158

原创 华为昇腾(Ascend)等芯片,同样存在“寄存器 / 片上存储资源限制并发”的问题

华为昇腾(Ascend)等芯片,同样存在“寄存器 / 片上存储资源限制并发”的问题,本质等价于 CUDA 的 register + occupancy。不是 CUDA 才有这个问题,而是所有高性能并行架构的共性:片上 SRAM(register/UB)会限制并发,从而影响整体性能。👉 为什么 FlashAttention / GEMM 会“故意吃满 register”,但性能反而更高。昇腾没有叫 occupancy,但“能同时跑多少 task”就是 occupancy 的等价物。

2026-04-21 14:41:50 293

原创 cuda的 . occupancy + register

本文分析了CUDA编程中寄存器(register)占用与occupancy(占用率)的关系。寄存器作为线程私有高速工作区,其数量会直接影响SM上同时活跃的warp数量,从而决定occupancy高低。occupancy定义为SM上实际活跃warp数与理论最大warp数的比值,高occupancy有利于隐藏访存延迟。文中通过具体数值示例说明:当寄存器需求增加时,SM能驻留的warp数会减少,导致occupancy下降,进而影响性能优化。NVIDIA官方文档也指出,occupancy是衡量GPU计算资源利用率的

2026-04-21 14:32:36 497

原创 bank conflict 举例说明

本文通过具体计算解释了为什么在CUDA共享内存中,32×32的二维数组按列访问会导致bank冲突,而32×33的数组不会。对于32×32数组,相邻行的线性地址差为32,模32后bank相同,导致所有线程访问同一bank。而32×33数组的相邻行地址差为33,模32后bank编号依次递增1,使线程访问分散到不同bank,避免了冲突。关键结论是:32的倍数会导致bank对齐冲突,而33通过错位设计实现了访问分散。

2026-04-21 10:56:11 433

原创 CUDA grid/block 到矩阵映射示例(矩阵加法)

摘要:本文详细讲解了CUDA中grid/block到矩阵索引的映射关系,以8×8矩阵加法为例。配置采用4×4的block和2×2的grid,完整覆盖矩阵。核心公式展示了blockIdx和threadIdx如何组合计算矩阵坐标,并通过区域划分图直观展示映射关系。文章提供了完整的CUDA kernel代码示例,实现C[row][col]=A[row][col]+B[row][col]的并行计算,包含边界检查。最后指出这种映射关系直接影响内存访问效率、warp执行等性能关键因素,是理解GPU并行计算的基础。

2026-04-15 11:22:21 418

原创 global=block×blockSize+local 线性展开

本文系统阐述了高性能计算中的索引映射核心公式 global = block × blockSize + local 的数学本质与工程应用。该公式本质是一种多进制展开,将分块坐标(高位)与块内坐标(低位)线性组合为连续地址,其中blockSize作为权重(stride)决定访问步长。文中详细对比了该公式与进制系统、CUDA线程索引、矩阵内存布局的统一性,指出其在高维张量、编译器优化等场景的普适性。特别强调索引展开的连续性对性能的关键影响:合理权重(如stride=1)可实现内存合并访问,而错误权重会导致带宽利

2026-04-15 09:41:07 384

原创 CUDA Grid/Block 在 A100 上的任务切分与执行

本文分析了CUDA任务在A100 GPU上的切分与执行过程。首先通过示例代码计算总任务规模:24个block,每个block128线程,共3072线程,分为96个warp。重点阐述了block内warp的切分方式,在block(4,8,4)配置下,每个z平面正好对应一个warp(4×8=32线程)。文章详细展示了线性thread id的计算公式及其展开方式,说明warp沿x→y连续扩展,z维负责切分warp。最后指出A100执行时以warp为调度单位,并分析该配置的性能特点:结构清晰但总warp数偏少。理解

2026-04-14 17:16:04 320

原创 单卡性能 4090 比A100 强

摘要: NVIDIA RTX 4090 与 A100 的性能对比需分场景讨论。在单卡、计算密集型任务(如中小模型推理、图像生成)中,4090凭借更多SM单元、更高频率和更强单卡算力(FLOPs)表现更优。然而,在内存/带宽敏感(如大模型推理、长序列)、多卡协同或训练场景下,A100凭借HBM显存、NVLink及高系统吞吐能力显著领先。核心差异在于:4090擅长单点爆发,但受限于显存和通信;A100则强在持续供给与多卡扩展,体现“系统吞吐>峰值算力”的工程逻辑。

2026-04-14 15:34:40 275

原创 # NVIDIA RTX 4090 vs A100:SM / Core 对比

NVIDIA RTX 4090与A100的核心对比显示:4090采用Ada架构,拥有128个SM和16384个CUDA核心,是A100(108SM/6912核心)的2.3倍,理论算力更强。但A100凭借HBM2e显存(1.5-2TB/s带宽)、NVLink和多卡扩展能力,在大规模AI任务中表现更优。关键差异在于4090侧重算力堆叠,而A100实现系统级平衡(算力+带宽+通信),特别适合数据中心场景。最终结论:4090适合计算密集型任务,A100则在大模型训练等场景中更具优势。

2026-04-14 15:19:18 267

原创 dim3 grid_size(2, 3, 4); dim3 block_size(4, 8, 4)算例

本文分析了CUDA中3D网格和块配置的执行模型,重点讨论了warp对齐问题。以一个典型配置dim3 block_size(4,8,4)为例,每个block包含128个线程(4×8×4),正好划分为4个完整的32线程warp。特别指出每个z层(tz)对应一个warp,这种结构完全符合warp=32的要求且没有资源浪费。文章还解释了线程线性化计算方式、warp划分逻辑,并强调虽然这种配置结构规整,但实际性能还需考虑内存访问连续性、共享内存使用等因素。最后提供了一个完整的CUDA示例代码,展示如何打印3D线程布局

2026-04-13 22:40:04 105

原创 给出 一个算例 就是 大矩阵相乘 用share memery 和不用 时间的 差别

本文通过具体算例分析矩阵乘法的GPU实现。以1024×1024矩阵乘法为例,总计算量约10^9次乘加操作。首先介绍不使用共享内存的naive版本,每个线程独立计算一个输出元素C[i][j]。后续将对比不同优化方法的效果,帮助读者理解矩阵乘法在GPU上的实现原理和性能优化思路。

2026-04-13 22:12:49 309

原创 给你一张 GPU(比如 A100)参数,让你自己算出 flash attention “最优 tile size”

本文介绍了在A100 GPU上优化FlashAttention tile size的工程方法。核心结论是:常见配置为BLOCK_M/BLOCK_N=64/128,BLOCK_K=32/64/128,总线程数128或256。这些参数由四个关键资源决定:共享内存容量、寄存器压力、warp数量和load/compute重叠能力。文章提供了A100 SM的关键资源数据:每个SM最多2048线程、64 warps、65536个32-bit寄存器和约160KB共享内存。优化过程需要平衡这些资源限制,计算每个block占

2026-04-13 21:58:43 260

原创 share memery 就是 sram 吗

文章摘要: 共享内存(shared memory)本质上是GPU芯片上的SRAM(静态随机存储器),属于高速片上存储。在NVIDIA架构中,它作为SM(流式多处理器)内部的可编程存储区域,具有比HBM(高带宽内存)更快的访问速度。关键区别在于:共享内存是片上SRAM,延迟极低;而HBM是片外存储,带宽高但延迟较大。这种设计使得共享内存特别适合需要频繁数据交换的并行计算任务。

2026-04-13 21:38:15 300

原创 一个 warp 同时 运行 32 个thread 就是 同时 运行 32 core

GPU中的warp(32个线程)执行机制解析 摘要: 本文澄清了关于GPU中warp执行的常见误解。一个warp包含32个线程,这些线程会被映射到一组执行单元(core pipeline)并行执行,但并非固定占用32个物理核心。在理想情况下,当SM(流式多处理器)拥有足够计算单元时,32个线程可以同时执行,近似相当于32个核心的并行计算能力。然而实际执行中,warp的线程调度还受限于硬件资源分配和指令流水线等因素,不能简单等同于32个物理核心的固定占用。正确理解warp的执行机制对于优化GPU程序性能至关重

2026-04-13 21:32:35 298

原创 gridDim 最好是sm 的整数 吗

GPU调度常见误区:gridDim不需要是SM数量的整数倍 核心结论: 误区纠正:gridDim(网格维度)不必是SM(流多处理器)数量的整数倍 关键要求:gridDim应远大于SM数量才能充分利用GPU算力 常见误解来源: 直觉认为"1个SM对应1个block"是最优分配 实际GPU采用动态调度机制,每个SM会并行处理多个block 调度机制说明: 现代GPU采用warp调度器,SM会同时处理多个block 需要足够多的block(远大于SM数)才能保持所有SM持续满载 典型的经验值是

2026-04-13 21:24:44 354

原创 为什么财产都是留给儿子

文章指出,女性择偶时重视对方物质条件的倾向,客观上导致了重男轻女现象的延续。通过两个家庭的对比分析发现:将资产集中给儿子的家庭(甲)比平分资产的家庭(乙)更容易延续后代——甲家庭的儿子因资产多更易婚配,女儿因资产少也更容易"上嫁";而乙家庭子女的婚配优势都较弱。这种婚恋选择机制使得重男轻女的家庭在进化中更具优势,形成了道德伦理与生存现实的矛盾。作者认为,正是女性自身对物质条件的重视,无意中维系了重男轻女的传统。

2026-04-13 10:44:34 238

原创 看书看到大脑疲劳以后,应如何快速恢复大脑状态

【大脑疲劳恢复指南】当长时间阅读导致大脑疲劳时,可采取以下科学恢复方法:1)短暂闭目养神5分钟,配合4-7-8呼吸法(吸气4秒-屏息7秒-呼气8秒);2)进行10分钟低强度运动如散步或拉伸,促进脑部供氧;3)补充含Omega-3的食物(如坚果)和水分;4)切换不同感官活动,如听轻音乐;5)采用番茄工作法(25分钟专注+5分钟休息)。建议单次用脑不超过90分钟,保持充足睡眠是预防疲劳的关键。

2026-04-12 17:42:52 380

原创 详细介绍 一下 IPU CGRA dataflow ASIC

本文对比分析了三种新型计算架构:IPU、CGRA和Dataflow ASIC。IPU(如Graphcore)采用图计算执行方式,适合稀疏/不规则计算;CGRA通过可重构计算阵列提供高灵活性,适合自定义算子;Dataflow ASIC则为固定高性能推理场景提供极致性能。三者各具优势:IPU=软件图执行灵活性,CGRA=硬件可编程性,Dataflow ASIC=专用高性能。选择取决于具体应用场景对灵活性和性能的需求。

2026-04-09 14:40:58 365

原创 是不是 低秩表达 三阶 attention 的本质 还是 二阶

摘要: 低秩分解后的三阶表达式本质上是多个二阶结构的组合,而非真正的三阶结构。关键在于它并非退化为单一二阶,而是转化为一组可叠加的二阶形式。通过公式分析,原始三阶张量$f(x,y,z)=\sum_{i,j,k}T_{ijk}x_iy_jz_k$在低秩分解后表现为二阶结构的线性组合,揭示了高阶模型的底层逻辑。这一区别对理解模型复杂度与表达能力具有重要意义。

2026-04-09 12:46:29 308

原创 如果 用高阶attention O (n3 ) 复杂度 ,需要多少算力

三阶attention的算力需求远超二阶,从O(n²)提升到O(n³),导致计算成本呈灾难性增长。普通Transformer的attention计算基于点积S_ij=q_i⊤k_j,而三阶attention会引入更复杂的计算模式。当序列长度增加时,三阶attention的计算资源消耗将变得难以承受,使多数实际应用场景无法运行。这种指数级增长的计算复杂度是三阶attention难以推广的根本原因。

2026-04-09 11:32:04 337

原创 华为 的 npu 架构如何 进行 flash attention

SRAM与HBM/DRAM的成本差异显著。SRAM每GB成本约为HBM的10-100倍,甚至在某些工艺下每bit成本高达DRAM的50-150倍。这是由于SRAM采用6晶体管结构,面积大(100-150 F²/bit),而DRAM/HBM采用1晶体管+电容结构,面积小(6-10 F²/bit)且需要刷新。这种物理密度差异导致SRAM成本远高于HBM,对理解FlashAttention等技术的设计考量至关重要。

2026-04-09 11:22:18 371

原创 flashattention 是 适配 英伟达的 gpgpu ,如果计算架构改了 ,flashattention也 会改

FlashAttention的核心思想是优化内存IO调度策略,通过减少HBM与SRAM之间的数据传输次数来提升性能。其本质是解决"Data Movement ≫ Compute"的问题,而非特定算法。当前实现主要针对NVIDIA GPU架构特性,但其思想具有通用性。具体实现需要根据不同硬件架构进行调整,以最大化减少IO瓶颈。

2026-04-09 09:55:32 329

原创 为何我读书越多,内心却越感到空虚

书里告诉你努力可能只是系统的剥削,道德只是统治阶级的工具,甚至连你引以为傲的自我意识,不过是潜意识和环境的随机产物。你挖出了自己的一只眼睛扔进泉水,看到了世界的荒诞和虚无。他失去了一只眼睛换来了全知,然后彻底陷入了无法逆转的虚无和焦虑,因为他知道一切挣扎都是徒劳。你在书本里获取了上帝视角的快感,关上书,你还得去挤早高峰的地铁,还得面对老板的弱智绩效。但你忘了,神话里的奥丁在看到必然的毁灭后,没有原地等死,他还是拿起了永恒之枪。这世界上最残忍的事,就是你具备了看穿一切的眼力,却没具备改变这一切的能力。

2026-04-08 11:14:39 363

原创 RoPE 指数频率设计与傅里叶基本质解析

RoPE位置编码本质是利用对数均匀分布的频率构造傅里叶基近似,实现多尺度位置建模。其核心设计$10000^{2i/d}$生成对数空间均匀频率,使Attention能同时捕捉长短距离关系。不同于严格傅里叶基,RoPE采用工程化频率采样方案,形成平移不变核函数。现代改进如NTK-aware和YaRN本质是优化频率分布策略。这一设计让Transformer能通过有限维傅里叶特征近似位置核函数,实现内容相似度与位置信息的有效结合。

2026-04-07 11:41:48 176

原创 RoPE 数学本质

摘要:RoPE(Rotary Position Embedding)的本质是将嵌入向量的每两维视为复数,施加与位置相关的相位旋转,使注意力内积仅依赖相对位置信息。原三点判断需修正:1) 嵌入向量被解释为复数向量而非仅实部;2) θ确实是复角;3) 旋转是每组二维维度绕自身原点旋转,而非整体向量绕中点旋转。数学上,RoPE对应分块对角旋转矩阵,保持内积结构不变。最终使注意力机制仅编码相对位置差,实现位置感知。这种复数空间旋转群作用揭示了RoPE与傅里叶变换的深层联系。

2026-04-07 11:27:07 339

原创 RoPE 的数学表达式

RoPE(旋转位置编码)是一种创新的位置编码方法,通过旋转矩阵将位置信息融入Transformer的注意力机制中。其核心思想是将embedding向量按两维分组,对每组应用旋转变换,旋转角度与位置相关(θ=pos/10000^(2i/d))。这种方法能保持相对位置关系,使注意力分数仅依赖位置差。RoPE可用复数形式简洁表示(z'=ze^(iθ)),工程实现上通过交替应用正弦余弦变换完成。其优势在于保持序列长度外推性,已成为LLaMA等主流模型的标准配置,数学性质优雅且计算高效。

2026-04-07 11:22:57 386

原创 RoPE → Attention 完整

本文档详细介绍了Transformer模型从输入到RoPE位置编码再到注意力机制的全流程实现。内容包括:1) 输入token序列通过嵌入层转换为向量表示;2) 使用旋转位置编码(RoPE)对序列位置信息进行编码;3) 完整的注意力计算过程。每个步骤都提供了数学表达式和对应的PyTorch实现代码,便于直接参考和使用。文档结构清晰,包含"输入→RoPE→Attention"三个主要部分,形成完整的Transformer前向传播流程说明,适合需要了解或实现Transformer模型的读者参考

2026-04-03 14:18:08 383

原创 复数 多项式在 黎曼球上的 几何表示

基于深度学习的图像识别技术研究取得新进展。研究团队提出了一种改进的卷积神经网络模型,通过优化网络结构和训练策略,显著提升了图像分类和目标检测的准确率。实验结果表明,该方法在多个公开数据集上的性能优于传统算法,特别是在复杂场景下表现出更强的鲁棒性。该技术可广泛应用于安防监控、医疗影像分析等领域,具有重要的实用价值。

2026-04-03 10:25:06 227

原创 eiθ=cosθ+isinθ证明

本文通过两种方法证明欧拉公式$e^{i\theta}=\cos\theta+i\sin\theta$。泰勒级数法将指数函数展开为幂级数,代入虚数单位$i$后分离实部和虚部,分别对应余弦和正弦函数的级数展开。微分方程法构造辅助函数并求导,证明其为常数后通过初值确定等式关系。最后指出该公式的几何意义表示平面上的单位旋转,对应旋转矩阵。两种证明方法从不同角度揭示了指数函数与三角函数之间的深刻联系。

2026-04-03 09:40:14 453

原创 道家的精髓是什么

道家思想揭示人类社会本质上是能量困局,主张"无欲不争"以保护自身能量。其核心观点认为:1.人类社会是循环的能量矩阵,通过制度规范束缚个体;2."道法自然"强调效法万物本真状态,如水般"利万物而不争";3.破局之道在于拒绝定义、保持观察者视角、提升精神能量。这与荣格能量学说及斯多葛主义等自立哲学相通,都指向摆脱系统驯化、回归本真存在的终极追求。

2026-03-30 18:13:34 318

原创 为什么有些人的预判能力这么强

精准预测能力的本质是基于极度悲观的人性认知和对行为底线的深刻理解。多数人因掺杂主观期待而判断失误,而预判高手完全剥离情绪,只观察事实底线。这种能力往往源于缺乏安全感的环境,迫使人们提前穷尽最坏可能。当你能沉默见证他人重复自身缺陷时,预判能力便达到顶峰。看透人性弱点虽能带来安全,却也伴随巨大心智消耗和孤独感,让人难以融入群体狂欢。

2026-03-30 09:32:22 367

原创 糖尿病的发病机理是什么

肝脏功能受损会破坏血糖调节机制,导致血糖堆积、胰岛素持续分泌,最终引发糖尿病。健康的血糖调节需要肝脏将多余血糖转化为肝糖原和脂肪,但现代饮食中的高糖、高脂、添加剂等加重肝脏负担,使其无法正常代谢血糖。治疗应首先保护肝脏功能,而非单纯控制饮食或依赖药物。不当的饮食方式如生酮饮食反而会加重肝脏工作负担。传统饮食结构更有利于肝脏和胰岛功能的健康维持。

2026-03-26 14:05:07 50

原创 张雪峰不幸去世,怎么评价他的一生

中国大学困境源于其社会定位下降。从博洛尼亚、巴黎到洪堡的柏林大学,大学的核心功能并非知识传授,而是共同体再生产。志愿填报产业链兴起、家长教育投入过度等现象,反映出大学教育本质的异化。传统大学通过同乡会等形式维系共同体,而现代大学已偏离这一根本功能。

2026-03-26 13:47:05 392

原创 截止到 2026-3 自动驾驶开源算法中 哪个算法最强

【开源自动驾驶算法选型指南(2026年)】 核心观点:算法选择需适配场景需求,不存在绝对"最强"。2026年最新开源方案推荐: 纯视觉BEV感知(低成本量产首选): UniAD等TOP3方案适配相机输入 优势:快速迭代调参 多传感器融合(高阶自动驾驶): 激光雷达+相机融合方案 重点考虑传感器标定与同步 端到端方案(前沿研究方向): 需关注数据闭环能力 适合科研探索 选型关键:平衡性能、开源质量、社区活跃度与部署难度,根据硬件算力和工程需求选择最适配方案而非盲目追求指标。

2026-03-18 11:32:41 573 1

空空如也

空空如也

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

TA关注的人

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