3D Gaussian Splatting 3D Gaussian Splatting 图形学前置知识 点云数据: 三维坐标系统中的一组向量集合,每一个点包含三维坐标,可能包含颜色信息(RGB)或反射强度信息(Intensity,表示每个点云中点的反射、反射率、反射强度)。 本质上是3D空间中无序、无结构的海量数据点的集合。它的获取方式多种多样,在 3D Gaussian Splatting 中主要会通过二维影像进行三维重建,在重 2024-12-22
多模态论文综述 多模态综述——模型架构 过去三年多模态模型获得了巨大的发展 从模型输入输出的视角: 输入单图 + 文本,输出文本 在多模态发展的早期阶段,模型的输入和输出主要集中在图像加文本的形式上,且输出通常是文本。这种设计主要是由于当时的技术限制,特别是缺乏有效的图像生成模型和技术(diffusion,consistency models 等)。因此,研究焦点更多地放在如何有效地将图像信息映射到 2024-12-08
Energy Based Models Energy Based Models 能量模型并不是一种新的技术:将当前的DL,ML统一在能量模型的框架中。我们先理解一下何为能量函数,能量函数通常写作 E(x,y)E(x,y)E(x,y) ,用于衡量 x,yx,yx,y 的 compatibility,可以理解为 x,yx,yx,y 是否匹配,能量越小匹配度越高 EBM 和 PBM 的区别 EBM (Energy Based Mo 2024-11-28
生成式模型统一视角-Diffusion 生成式模型统一视角-Diffusion Diffusion的优化思路 我们先从整体的框架去了解 diffusion 在干什么,而不是按照论文的公式一步一步来,那样会被各种细节的公式给迷惑住而忘记了整体的模型设计思路,下面的行文中我们省略中间公式的推导 上一次我们推导到了 ELBO 使用的优化的最终形式为: ELBO=Eq(x1∣x0)[logp(x0∣x1)]⏟reconstructio 2024-11-22
生成式模型统一视角-ELBO 生成式模型统一视角-ELBO 生成式模型的作用-intro 给定从某个分布中抽取的观察样本xxx,生成模型的目标是学习并模拟这个分布的真实数据分布 p(x)p(x)p(x)。这里的真实数据分布是指生成这些样本的原始概率分布。生成模型通过学习训练数据中的模式来近似这个真实的分布(注意这只是对于绝大部分的基于概率的模型) 一旦模型学会了如何近似真实的数据分布,我们就可以使用这个模型生成新的 2024-10-21
shared_memory CUDA共享内存概述 GPU内存按照类型(物理上的位置)可以分为 板载内存 片上内存 全局内存是较大的板载内存,延迟高,共享内存是片上的较小的内存,延迟低,带宽高。前面我我们讲过工厂的例子,全局内存就是原料工厂,要用车来运输原料,共享内存是工厂内存临时存放原料的房间,取原料路程短速度快。 共享内存是一种可编程的缓存,共享内存通常的用途有: 块内线程通信的通道 用于全局内存数据的可编程管理的 2024-10-17
loop_unroll 循环展开(Loop Unrolling) 循环展开的概念 GPU 编程偏向于使用确定的代码,GPU没有分支预测能力,所有每一个分支都是要执行的,所以在内核里尽量别写分支,分支包括什么?包括 if 还有 for 之类的循环语句,例如: 123for (itn i=0;i<tid;i++) { // to do something} 如果上面这段代码出现在内 2024-10-15
reduction 归约问题 并行归约问题 在串行编程中,、最常见的一个问题就是一组特别多数字通过计算变成一个数字,比如加法,也就是求这一组数据的和,这种计算当具有交换律和结合律的时候,我们可以用并行归约的方法处理他们 为什么叫归约,归约是一种常见的计算方式(串并行都可以),归约的归有递归的意思,约就是减少,这样就很明显了,每次迭代计算方式都是相同的(归),从一组多个数据最后得到一个数(约) 归约的方式基 2024-10-15
excute_model CUDA编程的组件与逻辑 下图从逻辑角度和硬件角度描述了CUDA编程模型对应的组件。 SM 中共享内存,和寄存器是关键的资源,线程块中线程通过共享内存和寄存器相互通信协调。寄存器和共享内存的分配可以严重影响性能! 因为SM有限,虽然我们的编程模型层面看所有线程都是并行执行的,但是在微观上看,所有线程块也是分批次的在物理层面的机器上执行,线程块里不同的线程可能进度都不一样,但是同一个 2024-10-14
thread_parallel 并行组织线程 使用块和线程建立矩阵索引 为了简便起见,我们先只从二维线程块进行介绍而不是使用三维 线程模型前面文章中已经有个大概的介绍,但是下图可以非常形象的反应线程模型,不过注意硬件实际的执行和存储不是按照图中的模型来的: 这里 (ix,iy)(ix,iy)(ix,iy) 就是整个线程模型中任意一个线程的索引,或者叫做全局地址,局部地址就是 (threadIdx.x,thr 2024-10-14