首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏奇点大数据

    话说量化2

    市场,是一个很古老的概念了,至少已经有三四千年以上的历史了。较早的关于市场的记录是在古埃及时期,公元前两千多年之前,就已经有“Bazar”这个概念了,汉语里面也留下了它音译的痕迹——“巴扎”。直到现在,在新疆少数民族聚居区仍然在使用这个词汇作为“集市”的用词概念。

    53020发布于 2018-09-14
  • 来自专栏腾讯云数据库(TencentDB)

    查询执行效率低下?向量化执行来帮你

    以查询计划执行为例。 CPU的SIMD指令进行优化,从而造成查询执行效率低下的问题。 向量化执行就是解决上述问题的一种有效手段。 作为国内领先的数据库厂商,腾讯云数据库一直致力于推动国产数据库学术人才培养和技术创新生态建设发展。 在本期DB · 洞见直播中,我们邀请到了腾讯云数据库高级工程师胡翔,来为大家介绍向量化执行的最新技术创新、基本原理以及向量化引擎的相关实现。 专家介绍 胡翔 腾讯云数据库高级工程师 博士毕业于中国科学院软件研究所,加入华为高斯实验室工作多年,加入腾讯后主要负责TDSQL PG版数据库向量化执行引擎等相关特性的设计开发工作。

    68620编辑于 2022-07-19
  • 来自专栏利志分享

    浅析Clickhouse的向量化执行

    量化执行就是这种方式的典型代表,这项寄存器硬件层面的特性,为上层应用程序的性能带来了指数级的提升。 向量化执行,可以简单地看作一项消除程序中循环的优化。这里用一个形象的例子比喻。 为了制作n杯果汁,非向量化执行的方式是用1台榨汁机重复循环制作n次,而向量化执行的方式是用n台榨汁机只执行1次。 为了实现向量化执行,需要利用CPU的SIMD指令。 ClickHouse的向量化执行机制主要依赖于SSE指令集,下面简要介绍之。 SSE指令集 SSE指令集是MMX的继任者,其第一版早在Pentium III时代就被引入了。 随着新指令的扩充,又有了SSE2、SSE3、SSSE3、SSE4(包含4.1和4.2)等新版本。 一个XMM寄存器原本只能存储一种数据类型: 4个32位单精度浮点数 SSE2又扩展到能够存储以下类型: 2个64位双精度浮点数 2个64位/4个32位/8个16位整数 16个字节或字符 SSE的指令分为两大类

    94320编辑于 2022-04-25
  • 来自专栏大数据&分布式

    Spark Gluten 向量化执行框架

    Photon向量化执行引擎取代了已有的Spark执行模式(JVM & Codegen)。 Spark Driver处理查询请求的基本流程如下图所示,(1).基于Spark Catalyst框架进行SQL解析和逻辑计划优化,(2).基于SparkPlanner进行物理计划优化,(3).优化后的物理计划 Gluten实现向量化计算的主要变更如下所示,在QueryExecution执行前优化过程中,通过注入规则对物理计划进行扩展处理,转为Gluten物理计划,使用向量化执行模式替换已有的JVM + CodeGen 在Task执行阶段,基于Gluten RDD,通过JNI调用Native引擎(默认Velox)实现向量化执行。 (2).

    1.5K54编辑于 2025-01-21
  • 来自专栏量子化学

    利用MOKIT从PySCF其他量化程序传轨道

    近期笔者和另一开发者wsr在MOKIT程序中加入了fchk(),py2molpro,py2molcas,py2qchem等模块,可用于从PySCF程序其他量子化学程序传递分子轨道。 (为什么不用Gaussian算完了传轨道给其他程序:因为Gaussian是商业收费程序,有的课题组/机构没买) (3)自己基于PySCF开发新方法,无现有程序对应,但希望正确地传轨道至下一个量化程序进行后续计算 (mf, 'h2o.inp') 产生h2o.inp,h2o.scforb和H2O.BAS三个文件。 (mf, 'h2o.dal') 产生h2o.dal和h2o.mol两个文件。 注意Windows预编译版不支持本文功能,内含的是Gaussian与其他量化程序传轨道的小程序。

    1.9K20编辑于 2022-12-07
  • 来自专栏量子化学

    利用MOKIT从ORCA其他量化程序传轨道

    本文介绍如何使用MOKIT从ORCA其他量化程序传轨道,有以下可能的用途: (1)在ORCA中进行了RIJK或RIJCOSX加速的大体系HF/DFT计算,想传轨道给其他程序进行后续计算,或想产生fch /thread-29762-1-1.html 这里我们假设已经获得了.mdci.nat文件,接着执行 mv O_singlet_o.mdci.nat O_singlet_CCSD.gbw 若读者在计算中使用全电子基组,自然无此问题;若用了赝势,按上文操作产生其他量化程序的文件不会含赝势信息,即使轨道系数正确,SCF也会剧烈振荡。这里笔者推荐一种解决办法: Step 1. 获得含赝势的fch文件和ORCA相关文件 执行 fch2mkl ZnMe2.chk 随即产生ZnMe2.fch,ZnMe2_o.inp和ZnMe2_o.mkl文件,现在我们就有了一个含赝势信息的fch ,fch2com,bas_fch2py等小程序传给其他量化程序做计算,且均含赝势信息。

    1.6K20编辑于 2023-09-03
  • 来自专栏PostgreSQL研究与原理解析

    聊聊StarRocks向量化执行引擎-过滤操作

    聊聊StarRocks向量化执行引擎-过滤操作 StarRocks是开源的新一代极速MPP数据库,采用全面向量化技术,充分利用CPU单核资源,将单核执行性能做到极致。 本文,我们聊聊过滤操作是如何利用SIMD指令进行向量化操作。 过滤操作的SIMD向量化函数是filter_range,我们以binary类型的列为例: BinaryColumnBase<T>::filter_range 执行过程如下图所示: 1、通过1 个字节uint8_t类型的f_data数组来表示是否满足过滤条件,1表示满足条件,0表示不满足 2、AVX2指令集环境下:通过_mm256_loadu_si256封装的指令函数加载256位长度值到寄存器 比如: 11100000:有5个0 2)mask右移6位,即11,值3。其实就是跳过不满足的行 3)_offsets[i]数组表示第i个值的偏移。

    1.6K40编辑于 2023-05-25
  • 来自专栏PostgreSQL研究与原理解析

    openGauss-向量化执行引擎-VecUnique算子

    openGauss-向量化执行引擎系列-VecUnique算子 openGauss实现了向量化执行引擎,达到算子级别的并行。也就是说在执行器火山模型基础上,一次处理一批数据,而不是一次一个元组。 前期我们介绍了PgSQL Unique算子的实现机制,本文接着介绍openGauss是如何实现Unique算子向量化的。 简单来说,openGauss的VecUnique算子更多的是为了实现执行器整体性的向量化,减少算子之间因为向量化和非向量化算子之间的兼容而进行的VecToRow和RowToVec算子进行的行与向量之间的转换而完成的 1、VecUniqueState 完成VecUnique算子的主要成员变量: 1)uniqueDone:标记VecUnique算子是否执行2)container[]数组:数组大小为2个batch大小即 这针对的是跨batch的场景: batch1中最后一个是10,batch2中第一个是10,假设batch1中的都是不同值,则需要将batch2的第一个值10也存入container[1025]数组后才进入构建

    60840编辑于 2023-11-05
  • 来自专栏PostgreSQL研究与原理解析

    PG 向量化引擎--2

    PG 向量化引擎--2量化引擎是OLAP数据库提升性能的有效技术。翻到PostgreSQL邮件列表有对向量化引擎的讨论。这里继续进行整理,以作分析。 2、为什么VectorTupleSlot中包含元组的数据(batch)而不是向量(vtype的数组)? 复制当前并行扫描并实现向量化Gather,保持接口都是VectorTupleTableSlot。我们基本思路是复用当前PG执行逻辑大部分代码,然后进行向量化,并逐步进行性能调优。 还有用于并行查询的特殊节点,所以如果我们想为向量化操作提供并行执行,我们还需要用自定义节点替换这个节点。 当然并不意味着新版本的PG不需要向量化执行器。无论如何,我认为向量化执行器至于与列存结合才有意义。 Konstantin Knizhnik的测试 将vectorize_engine移植到master。

    1.2K20编辑于 2022-02-09
  • 来自专栏PostgreSQL研究与原理解析

    聊聊ClickHouse向量化执行引擎-过滤操作

    基本思想 1、有一个数组data,即ColumnVector::data,存放数据 2、使用uint8类型,即1个字节类型的filter数组:ICloumn::Filter。 4、上面代码耗时因素在于循环次数非常多,等于data数组的大小 5、如果可以降低循环次数,同时保证单次循环耗时变化不大,总体执行效率更高。 2)mask 64位比特位都是0,可以直接跳过循环。当然,这两种特殊情况经常出现在业务常见中 9、第三中情况是有一部分满足条件,此时是否需要循环64次?有没有进一步的优化方法? 其实分为3部分,AVX512VBMI2指令集、默认的操作和尾部数据处理。其中尾部数据处理是指处理数据不够64个时,剩余的部分处理方式,这种方式无法使用SIMD,沿用标量处理方式。 其利用了以下指令集: AVX512F / AVX512BW AVX/AVX2 SSE2 其中,_mm512_testn_epi8_mask函数功能:计算a和b两个入参值按8位整数逐位与(AND),

    1.5K50编辑于 2023-05-25
  • 来自专栏PostgreSQL研究与原理解析

    聊聊Doris向量化执行引擎-过滤操作

    聊聊Doris向量化执行引擎-过滤操作 Doris是开源的新一代极速MPP数据库,和StarRocks同源,采用全面向量化技术,充分利用CPU单核资源,将单核执行性能做到极致。 本文,我们聊聊过滤操作是如何利用SIMD指令进行向量化操作。 过滤操作的SIMD向量化函数是_evaluate_vectorization_predicate:和StarRocks实现大致类似,但稍有不同: SegmentIterator::_evaluate_vectorization_predicate 执行过程如下图所示: 1、通过1个字节bool类型的ret_flags数组来表示是否满足过滤条件,1表示满足条件,0表示不满足 2、AVX2指令集环境下:通过_mm256_loadu_si256封装的指令函数加载 _t* data) { #ifdef __AVX2__ auto zero32 = _mm256_setzero_si256(); uint32_t mask = static_cast

    1.3K40编辑于 2023-05-25
  • 来自专栏漫谈测试

    如何量化战略成效的执行情况

    量化战略成效的执行,就是将测试团队的日常工作与公司/部门的宏观战略(如加快上市时间、提升客户满意度、降低运营成本、增强品牌声誉)联系起来,并用数据来证明这种联系的强度和效果。 2. 质量维度(核心使命)这是传统强项,但要赋予战略意义。不要只统计数量,要分析分布和影响。 成本维度(彰显管理的精细化)将质量成本(Cost of Quality)量化管理层展示投资回报。 选择2-3个最能体现当前战略重点的指标(如缺陷逃逸率和发布阻滞率)开始,逐步完善。 作为测试管理者,量化战略成效的本质是搭建一座桥梁,将技术性的测试活动转化为商业语言,组织证明:我们在正确地做事(效率): 通过效能指标体现。

    34410编辑于 2025-09-12
  • 来自专栏Spark学习技巧

    一文了解 ClickHouse 的向量化执行

    它实现了单机多核并行、分布式计算、向量化执行与SIMD指令、代码生成等多种重要技术。 向量化执行与SIMD ClickHouse不仅将数据按列存储,而且按列进行计算。传统OLTP数据库通常采用按行计算,原因是事务处理中以点查为主,SQL计算量小,实现这些技术的收益不够明显。 向量执行引擎,通常能够带来数倍的性能提升。 What IS SIMD ? SIMD 即 single instruction multiple data 英文首字母缩写,单指令流多数据流,也就是说一次运算指令可以执行多个数据流,一个简单的例子就是向量的加减。 通过它,用户可以同时在多个数据片段上执行运算,实现数据并行(aka:矢量处理)。 SSE2是SSE指令的升级版,寄存器与指令格式都和SSE一致,不同之处在于其能够处理双精度浮点数等更多数据类。

    7.2K31发布于 2021-07-02
  • 来自专栏PostgreSQL研究与原理解析

    openGauss-向量化执行引擎-索引扫描CStoreIndexScan

    openGauss-向量化执行引擎-索引扫描CStoreIndexScan openGauss实现了向量化执行引擎,达到算子级别的并行。 也就是说在执行器火山模型基础上,一次处理一批数据,而不是一次一个元组。这样可以充分利用SIMD指令进行优化,达到指令级别并行。 1)Meta page 用来保存当前BTree 的元数据,也是索引page的第0页 2)Inner Node(page) 内部节点,其index-tuple 中 仅保存key 以及指向子节点的指针 3) 2、向量化索引扫描算子 openGauss通过CStoreIndexScan算子进行向量化索引扫描。 向量化索引扫描的优势:兼容向量化引擎其他算子,以达到全算子向量化,减少VecToRow和RowToVec的互相转换;同时减少底层算子函数的调用;因为增加了排序,可如同bitmap扫描一样减少heap页的随机访问

    76830编辑于 2023-11-05
  • 来自专栏量化小白上分记

    量化笔面试概率题*2

    我投的基本都是量化岗,到现在3/20的通过率,总之很艰难。 因此E(k) = 2^(k+1) - 2,这样,E(4) = 30 ? 再举一个例子 ? 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 还是刚才的逻辑,假设走k级有f(k)种走法,显然f(1)=1,f(2)=2,如果第一次走了1级,剩下k-1级有f(k-1)种走法,如果第一次走了两级,剩下k-2级有f(k-2)种走法,即f(k)=f(k -1)+f(k-2)。 ,但速度会快很多,代码如下 def f(x): if x ==1: y = 1 elif x ==2: y = 2 else: s

    4.2K20发布于 2019-07-01
  • 来自专栏PostgreSQL研究与原理解析

    openGauss - 向量化执行引擎 - distinct分组聚合的实现

    openGauss - 向量化执行引擎 - distinct分组聚合的实现 openGauss向量化执行引擎中分组聚合有两种实现方式:排序和hash。 其中普通group by就是每次查询生成一个分组的聚合;而grouping sets、cube或者rollup分组集就是每次查询生成不同级别或者多个维度的聚合,详见: 下面我们看下openGauss向量化执行引擎中对这些分组聚合如何实现 from t group by id1,id2时,第2个count即不是distinct也不是order by,那么流程中通过m_hashDistinct进入distinct处理分支后,又是怎么分辩出第二个 2)若多个count中,非distinct和非order by的聚合,因为他们的peragg_stat->numSortCols为0,则不用进入该排序并聚合流程。 它的聚合走另外分支: 2、原理 1)通过CStoreScan算子从磁盘上加载一批数据到内存,并通过VecSort向量化算子进行排序 2)从排好序的数据中(要么都在内存,要么溢出到磁盘)拿一批数据batch

    62610编辑于 2024-05-06
  • 来自专栏大模型成长之路

    【大模型学习 | BERT 量化实战(2) 】

    p_bert_embeddings_layernorm_weight', 'p_bert_embeddings_layernorm_bias', #⚠️ BERT 模型包含了 nn.Embedding 层,而当前 PT2E 导出流程默认将这些参数导出为必须手动传入的动态参数(如 p_bert_embeddings_position_embeddings_weight),导致你在前推理时必须手动传入 embedding ① 权重分布本身就不光滑(有离群值)② 权重量化导致连续输入映射为不连续输出解决✅ 方法1:替换激活函数 GELU → ReLU✅ 方法2:尝试采用 QAT 逐层敏感性分析核心思想:将原模型逐层量化,观察产生精度下降的原因 .4f} | ΔAcc: {delta:.4f}") results.append((name, acc, delta)) results.sort(key=lambda x: x[2] Sensitive Layers:") for r in results[:5]: print(f"{r[0]:40s} | Acc: {r[1]:.4f} | ΔAcc: {r[2]

    78810编辑于 2025-06-27
  • 来自专栏漏洞复现

    锐捷 EWEB auth 远程命令执行漏洞RCE(批量化

    1、fofa语句body="cgi-bin/luci" && body="#f47f3e"2、数据包POST /cgi-bin/luci/api/auth HTTP/1.1Host: XXXXXXXXXX.comContent-Type name: auth接口存在RCE漏洞 author: someone severity: critical description: auth接口存在RCE漏洞,恶意攻击者可能会利用该漏洞执行恶意命令 109.0) Gecko/20100101 Firefox/119.0 matchers: - type: dsl dsl: - "status_code_2=

    3.4K10编辑于 2024-03-10
  • 来自专栏DeepHub IMBA

    使用ExLlamaV2量化并运行EXL2模型

    并且它还引入了一种新的量化格式EXL2,它为如何存储权重带来了很大的灵活性。 在本文中,我们将介绍如何量化EXL2格式的基本模型,以及如何运行它们。 量化EXL2模型 首先需要安装ExLlamaV2库: pip install exllamav2 #为了使用官方的一些脚本,我们还要把官方的代码clone到本地 git clone https:/ 量化过程使用现有脚本非常的简单。那么还有最后一个问题,为什么要使用“EXL2”格式而不是常规的GPTQ格式呢?EXL2带来了哪些新功能? 它支持不同级别的量化:它不局限于4位精度,可以处理2、3、4、5、6和8位量化。 它可以在一个模型和每一层中混合不同的精度,以保留最重要的权重和具有更多bit的层。 ExLlamaV2量化过程中使用了这种额外的灵活性。它会自动尝试不同的量化参数,并测量了它们引入的误差。

    1.1K10编辑于 2023-11-22
  • 来自专栏人力资源数据分析

    KPI关键指标的量化设计(2

    我们在上篇文章讲到了如何根据岗位的工作职责进行KPI关键值的选择,那今天我们就来聊聊,如何进行量化的KPI指标的设计。 (2)Measurable可以衡量的:绩效指标是数量化或者行为化的,验证这些绩效指标的数据或者信息是可以获得的。 2、KPI量化指标的3大设计维度 在对KPI的设计中,我们根据数据的类型,我们一般会对KPI的数据有三种形式的量化指标设计 ? ? 1、KPI的标准指标,这个指标的数值是指在月度我们达标的数据 2、KPI保底数据,这个数据指标是我们每月必须一定要完成的数据指标, 3、KPI期望数据,这个数据是我们超出达标数据,跳一跳可以够得到的数据

    2.1K30发布于 2020-11-03
领券