首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏ops技术分享

    redis原理2

    一致性哈希分区(Distributed Hash Table) 实现思路是为系统中每个节

    35500发布于 2021-05-18
  • 来自专栏后端从入门到精通

    Join原理(2)--连接原理(四十)

    Join,left join,right join(1)--连接原理(三十九) Join原理 明白了左连接还右连接内连接之后,下面介绍他的原理 嵌套循环连接(Nested-Loop join) 上篇文章我们说的其实就是嵌套循环查询方法 ,比如驱动表查出来3条数据,则被驱动表会吧三条数据全部一条条带入,比如t2.m1 = t1.m1,则会查询三次被驱动表,若链接了三个表,然后则第三个表又在前面表查询出来的基础上,插叙多次,这样一层层嵌套循环 使用索引加快连接速度 我们前面说过嵌套查询分为两个步骤,在回顾一下 步骤1:先查询驱动表的所有数据,结果若果有两条 步骤2:t2.m1 = 2 and t2.n1<’d’,t2.m2 = 3 and t2 如果在步骤2的时候全部都是全表查询,那将是对数据库的灾难,连接的表越多,查询的越多,这就是为什么经常用连接会导致sql性能差的原因。比如内连接,若不加限制条件,结果呈指数增长,这个结果类似。 Select * from t2 where t2.m1 = 2 and t2.n1<’d’ Select * from t2 where t2.m1 = 3 and t2.n1<’d’; 这时候如果我们给

    70520编辑于 2022-07-26
  • 来自专栏落叶飞翔的蜗牛

    线程池原理2

    接上文线程池原理(1) 线程池的创建 通过ThreadPoolExecutor构造函数实现(推荐) ? 线程池原理 任务调度 任务调度是线程池的主要入口,当用户提交了一个任务,接下来这个任务将如何执行都是由这个阶段决定的。了解这部分就相当于了解了线程池的核心运行机制。 I/O 密集型任务(2N):这种任务应用起来,系统会用大部分的时间来处理 I/O 交互,而线程在处理 I/O 的时间段内不会占用 CPU 来处理,这时就可以将 CPU 交出给其它线程使用。 因此在 I/O 密集型任务的应用中,我们可以多配置一些线程,具体的计算方法是 2N。 如何判断是 CPU 密集任务还是 IO 密集任务?

    66610发布于 2021-03-19
  • 来自专栏minlearnprogramming

    ​clingrootsys原理剖析(2):the pme

    但主要喂给它的是如PEM这样的业已包含类型系统–元类型系统,会将类型系统保持到运行期就可以了) 你可能会为编译过程的这些种种感到迷惑,但实际上这里面所有的技术,跟传统静态编译语言系统 – 你学到的最简单的编译原理实现 所有这些,都不能改变所有用编译原理实现的语言系统共享同样的产品外观(都有该有的部分,只是呈现出了不同的形式)。回到系列文章第一篇的文头那些话,用这些通读所有复杂语言系统的定性你才能不致迷糊。

    60240发布于 2020-09-28
  • 来自专栏文武兼修ing——机器学习与IC设计

    2FFT原理

    8点DFT算法,对于一个点: 需要复数乘法N次,每次复数乘法由四次实数乘法和两次实数加法实现 需要复数加法N-1次,每次复数加法由两次实数加法构成 因此,对于一个点,需要实数乘法共4N次,实数加法共(2N -2+2N)=4N-2次。 可减少所需要的复数乘法的次数,进而减少对应的实数乘法和加法的数量 FFT 基2FFT 基2FFT指点数为 ? 的FFT变换,取 ? 的FFT变换如下所示: ? 蝶形运算可以用于映射基2FFT,首先考虑2点FFT,两点FFT公式如下所示: ? 因此可以使用一个蝶形运算实现,权值为 ? ,现考虑一个4点FFT,首先将其分解为2个两点FFT,分解的公式为 ? 分解步骤也可以用蝶形运算实现,因此整体运算如下图所示: ?

    1.8K30发布于 2019-07-10
  • 来自专栏golang云原生new

    redis 存储结构原理 2

    ,redis 中都是使用这个结构来进行组织的 typedef struct dict { dictType *type; void *privdata; dictht ht[2] type 字段对应的操作函数,具体有哪些操作函数,我们可以看到typedef struct dictType 给出的信息 privdata 字典依赖的数据,例如 redis 具体的操作等等 ht[2] 我们在 redis 源码中 src\server.h 也能够看到 redisdb 的数据结构 我们可以看到 dict 这个字典,是 redis 中使用是相当频繁和关键的 上面有说到 ht[2] 会用在渐进式 ht[0] 数据拷贝到 ht[1] 的方式一 是这样进行 rehash 的 : 扩容的时候,rehash 是这样做的: 先会对上述说到的 ht[1] 开辟内存空间,会将 ht[0].size * 2

    30610编辑于 2023-09-01
  • 来自专栏Java识堂

    线程池实现原理-2

    前言 线程池实现原理-1 addWorker实现 在看addWorker方法之前,我们先看一个例子,了解一下retry的使用 break retry 跳到retry处,且不再进入循环 continue = 4) break retry; } } //start 第一次进入外层循环 //end i=1输出 //end i=2输出 =SHUTDOWN,分为如下2种情况 * (1)workQueue为空,fistTask == null 和fistTask ! = null的任务都不能 * (2)workQueue不为空,可以添加fistTask ! c); if (wc >= CAPACITY || // 1.是核心线程 >= corePoolSize // 2.

    79630发布于 2019-08-13
  • 来自专栏静默虚空的博客

    MPEG-2系统原理

    MPEG-2系统原理 一、MPEG-2系统原理 第一章 MPEG-2简介 什么是MPEG和MPEG-2? 第二章 DVB系统的构成 [本文不详细描述DVB系统的硬件构成,只是根据ISO13818中的描述,详细解释TS码流的格式和解复用原理。 不同的规格基本原理都是相同的,不同的主要是调制方式不同: DVB-S,S是Satellite的首字母,应用于数字电视卫星广播,调制方式是QPSK。 介绍到这里,我们就可以总结一下DVB搜台的原理了。(好!洗耳恭听!) 第四章 Teletext原理 欧洲采用的Teletext 标准叫做"ITU-R System B Teletext",标准文档是EN300472和EN300706。

    1.4K10编辑于 2022-05-07
  • 来自专栏用户5744311的专栏

    2、leveldb设计原理--LSM

    概念 LSM(Log-Structured Merge Tree) 原理 特点 把随机写转化成顺序写,写入速度快; 读数据可能需多次磁盘IO; 数据操作流程 写数据 追加写WAL日志; 更新内存中的MemTable

    60920发布于 2021-03-21
  • 来自专栏nginx遇上redis

    LDAP服务原理详解2

    LDIF(LDAPInterchange Format)是指存储LDAP配置信息及目录内容的标准文本文件格式,之所以使用文本文件来格式来存储这些信息是为了方便读取和修改,这也是其它大多数服务配置文件所采取的格式。LDIF文件常用来向目录导入或更改记录信息,这些信息需要按照LDAP中schema的格式进行组织,并会接受schema 的检查,如果不符合其要求的格式将会出现报错信息。LDIF文件样例如下:

    97310发布于 2020-02-19
  • 来自专栏AI系统

    AI系统】GPU 工作原理

    前面的文章对 AI 计算体系和 AI 芯片基础进行讲解,在 AI 芯片基础中关于通用图形处理器 GPU 只是简单地讲解了主要概念,将从 GPU 硬件基础和英伟达 GPU 架构两个方面讲解 GPU 的工作原理 英伟达 GPU 有着很长的发展历史,整体架构从 Fermi 到 Blankwell 架构演变了非常多代,其中和 AI 特别相关的就有 Tensor Core 和 NVLink。 在实际硬件工作的过程当中,更倾向于利用多线程对循环展开来提高整体硬件的利用率,这就是 GPU 的最主要的原理。 GPU 工作原理 基本工作原理 首先通过 AX+Y 这个加法运算的示例了解 GPU 的工作原理,AX+Y 的示例代码如下: void demo(double alpha, double *x, 80G 的显存是一个高带宽的内存,L2 Cache 大小为 40M,所有 SM 共享同一个 L2 Cache,L1 Cache 大小为 192kB,每个 SM 拥有自己独立的 Cache,同样每个 SM

    85810编辑于 2024-12-04
  • 来自专栏AI系统

    AI系统】知识蒸馏原理

    本文将介绍知识蒸馏(Knowledge Distillation, KD)的原理,这是一种通过从大型的教师模型向小型的学生模型转移知识来实现模型压缩和优化的技术。 上图展示了数据样本之间的关系知识蒸馏的过程,其蒸馏损失函数可以表述为: L_{RelD}(F_t,F_s) = L_{R^2}(\psi_{t}(t_i,t_j),\psi_{s}(s_i,s_j)) , s_j\in F_s ,而 \psi_{t}(\cdot) 与 \psi_{s}(\cdot) 分别是 (t_i,t_j) 和 (s_i,s_j) 的相似度函数,L_{R^2} 例如 MNIST 数据集中存在一个数字 2 的样本被预测为 3 的概率为 10^{-6} ,被预测为 7 的概率为 10^{-9} ,这部分负标签的信息就意味着这个数字 2 有可能与 3 和 7 有些相像

    80710编辑于 2024-12-06
  • 来自专栏AI系统

    AI系统】卷积操作原理

    卷积的数学原理 在通常形式中,卷积是对两个实变函数的一种数学运算。 填充背后的数学原理是这样的,如果我们有一个 n×n 的图像,用 k×k 的卷积核做卷积,那么输出的大小就是 (n-k+1)×(n-k+1) 。 假设填充的行/列数为 p ,因为我们在周围都填充了一个像素点,输出也就变成了 (n+2p-k+1)×(n+2p-k+1) 。 根据原始输入计算得到的输出尺寸 n-k+1 ,填充 p 行/列后,公式变为 n+2p-k+1 。令 n+2p-k+1=n ,使得输出和输入大小相等,解得 p=(k-1)/2 。 (ks[1] - 1) // 2, (ks[0] - 1) // 2, (ks[1] - 1) // 2] if ks[0] % 2 == 0:

    92011编辑于 2024-12-13
  • 来自专栏AI系统

    AI系统】计算图原理

    AI 系统化问题遇到的挑战在真正的 AI 工程化过程中,我们会遇到诸多问题。而为了高效地训练一个复杂神经网络,AI 框架需要解决许多问题,例如:如何对复杂的神经网络模型实现自动微分? 自然语言处理任务中,一个句子被组织成一个 2 维张量,张量的两个维度分别对应着词向量和句子的长度。 下面是针对形状为 (3, 2, 5) 的三维张量进行表示。虽然张量通常用索引来指代轴,但是始终要记住每个轴的含义。 在 AI 框架中会稍微有点不同,其计算图的基本组成有两个主要的元素:1)基本数据结构张量和 2)基本计算单元算子。节点代表 Operator 具体的计算操作(即算子),边代表 Tensor 张量。 在这里的计算图其实忽略了 2 个细节,特殊的操作:如:程序代码中的 For/While 等构建控制流;和特殊的边:如:控制边表示节点间依赖。

    67010编辑于 2024-12-06
  • 来自专栏AI系统

    AI系统】常量折叠原理

    AI 编译器的常量折叠常量折叠作为传统编译器的一种优化技术,其迁移到 AI 编译器依然适用。传统编译器通常是对抽象语法树进行常量折叠优化,而 AI 编译器是对计算图进行常量折叠优化。 以 Size 为例,对于形状大小为(1,2,3,4)的四维变量 Tensor,Size 的计算在编译期间是可以确定,AI 编译器会生成一个值为 24 的常量数据节点来替换 Size 节点。 图片 如上图,依旧以 AddN 为例,可以看出 AddN2 并不满足第一类的折叠规则,但是 AI 编译器发现 AddN1 是个可常量折叠的节点,AI 编译器生成一个常量数据节点替换掉 AddN1 后, 发现 AddN2 也满足第一类的折叠规则,所以 AI 编译器会再生成一个常量数据节点替换掉 AddN2AI 编译器实现案例不同的 AI 编译器对于常量折叠的细节不尽相同,这里以 tensorflow 为例,描述其常量折叠的实现细节:获得逆后续节点集。

    39610编辑于 2024-11-29
  • 来自专栏python

    详解AI作画算法原理

    本文将深入浅出地探讨AI作画的核心算法原理,分析常见问题与易错点,并通过一个简单的代码示例,带领大家一窥AI艺术创作的奥秘。一、核心概念与原理1. 2. 大模型与预训练随着Transformer架构的兴起,大规模预训练模型(如DALL-E, Stable Diffusion等)在AI艺术创作中展现出惊人的表现力。 六、案例分析:知名AI艺术项目1. DALL-E 2DALL-E 2是OpenAI开发的一个革命性图像生成系统,它能够根据简短的文字描述生成高质量、高分辨率的图像。 2. MidjourneyMidjourney是由Abyss Creations LLC开发的AI艺术平台,专注于利用AI技术生成独特的艺术作品。 随着算法的不断进步,AI创作的图像越来越接近甚至超越人类艺术家的作品。然而,掌握其背后的原理与技巧,避免常见陷阱,才能真正释放AI在艺术领域的无限潜能。

    1.7K10编辑于 2024-04-29
  • 来自专栏终有链响

    详解AI作画算法原理

    AI作画算法原理:深度学习驱动的艺术革新 引言 在数字化时代,人工智能正以前所未有的方式重塑着艺术的边界。 本文将深入探讨AI作画背后的算法原理,解析其如何借助深度学习的力量,实现从数据到艺术的华丽转变。 1. 2. 生成对抗网络(GANs)的魔术 原理介绍:GANs通过一个生成网络与一个判别网络的动态博弈,推动生成网络逐步逼近真实数据分布。 变分自编码器(VAEs)与创意探索 原理:VAEs通过学习数据的低维表示,可以在潜在空间中进行采样,生成新的、但符合训练数据分布的图像。这种随机采样机制为AI艺术创作提供了无限的创意可能。 用户交互与定制化创作 交互界面:现代AI作画平台通常提供用户友好的界面,用户可以通过文字描述、上传参考图片或选择预设风格来引导AI创作过程。

    1.1K10编辑于 2024-07-29
  • 来自专栏AI系统

    AI系统】NVLink 原理剖析

    随着 AI 技术的飞速发展,大模型的参数量已经从亿级跃升至万亿级,这一变化不仅标志着 AI 的显著提升,也对支持这些庞大模型训练的底层硬件和网络架构提出了前所未有的挑战。 虽然这在当时被视为高效的数据传输方式,但随着 AI 和机器学习领域的快速发展,数据集和模型的规模呈指数级增长,这种传统的 GPU-CPU 互联方式很快成为了系统性能提升的瓶颈。 这种独特的结构使得每个方向上能够实现高效的数据传输,具体来说,就是通过 2 位双向传输(2bi)乘以 8 对配对(8pair)再乘以 2 条线(2wire),最终形成了 32 条线(32wire)的配置

    91410编辑于 2024-11-27
  • 来自专栏Java学习录

    Dubbo源码解析(2)SPI原理

    org.apache.dubbo.common.extension.ext1.impl.SimpleExtImpl2 impl3=org.apache.dubbo.common.extension.ext1 org.apache.dubbo.common.extension.ext1.SimpleExt这个接口有三个可选的实现类:SimpleExtImpl1、SimpleExtImpl2、SimpleExtImpl3 instanceof SimpleExtImpl1); assertTrue(getExtensionLoader(SimpleExt.class).getExtension("impl2" ) instanceof SimpleExtImpl2); } 不去分析源码我们可以大概猜一下这两行代码,大致就是加载SimpleExt接口的两个实现类,这个接口上方提到过,我们先看下这个接口的内容 @Adaptive String echo(URL url, String s); @Adaptive({"key1", "key2"}) String yell(URL url

    47510发布于 2020-03-31
  • 来自专栏ops技术分享

    nginx结构原理全解析(2

    image.png 2.什么是IO多路复用? select 缺点:能够监视文件描述符的数量存在最大限制;线性扫描效率低下 优点:windows、linux都支持 epoll 优点:没有最大并发连接限制;效率提升,不是轮询的方式 轻量级 1.功能模块少 2. image.png 4.可以高并发 官方测试Nginx能够支撑5万并发连接,实际生产环境中只能抗住2-4万的并发 采用最新的epoll和kqueue网络I/O模型,而传统的Apache 使用的select

    36030发布于 2021-05-11
领券