【机器学习智能硬件开发全解】(四)—— 政安晨:嵌入式系统基本素养【后摩尔时代】

随着物联网、大数据、人工智能时代的到来,海量的数据分析、大量复杂的运算对CPU的算力要求越来越高。

CPU内部的大部分资源用于缓存和逻辑控制,适合运行具有分支跳转、逻辑复杂、数据结构不规则、递归等特点的串行程序。

在集成电路工艺制程将要达到极限,摩尔定律快要失效的背景下,无论是单核CPU,还是多核CPU,处理器性能的提升空间都已经快达到极限了。

适用于大数据分析、海量计算的计算机新型架构——异构计算,逐渐成为目前的研究热点。

所以,后摩尔时代被认为是在摩尔定律失效或逐渐失去影响力的基础上出现的摩尔定律是指集成电路上可容纳的晶体管数量每两年翻一番,这一规律被认为是现代计算机和信息技术发展的驱动力。

后摩尔时代的特点包括

  1. 技术进步的速度放缓摩尔定律的失效意味着集成电路的性能提升速度减缓,传统的硬件技术逐渐接近物理极限。

  2. 新兴技术的崛起随着摩尔定律的失效,新兴技术如人工智能、量子计算、生物技术等在后摩尔时代得到了快速发展,并成为经济增长的新动力。

  3. 数据的重要性在后摩尔时代,数据成为了最重要的资源和驱动力,数据分析、人工智能等技术的发展成为企业竞争的核心。

  4. 社会变革后摩尔时代还带来了社会结构和价值观的变革,例如劳动力市场的变化、数字化生活的兴起等。

虽然后摩尔时代的具体定义和影响仍在不断演变和讨论中,但它标志着新技术和经济格局的到来,对社会和经济发展具有深远的影响。


政安晨的个人主页政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏: 机器学习智能硬件开发全解

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!



什么是异构计算

简单点理解,异构计算就是在SoC芯片内部集成不同架构的Core,如DSP、GPU、NPU、TPU等不同架构的处理单元,各个核心协同运算,让整个SoC性能得到充分发挥。

在异构计算机系统中,CPU像一个大脑,适合处理分支、跳转等复杂逻辑的程序;

GPU头脑简单,但四肢发达,擅长处理图片、视频数据;

而在人工智能领域,则是NPU和FPGA的战场。

大家在一个SoC系统芯片内发挥各自专长,多兵种协同作战,让处理器的整体性能得到更大地提升。

GPU

GPU(Graphic Process Unit,图形处理单元)主要用来处理图像数据。

玩过吃鸡或3D游戏的朋友可能都知道,个人计算机上不配置一块大容量的显卡,这些游戏根本玩不了。

显卡是显式接口卡的简称,计算机联网需要网卡,计算机显示则需要显卡。

显卡将数字图像信号转换为模拟信号,并输出到屏幕上。

早期的计算机比较简单,都是简单的文本显示,显卡都是直接集成到主板上,只充当适配器的角色,即只具备图形信号转换和输出的功能,对于一些简单的图像处理,CPU就能轻松应付,不需要显卡的参与。

随着大型3D游戏、制图、视频渲染等软件的流行,计算机对图像数据的计算量成倍增加,CPU已经越来越力不从心,独立显卡开始承担图像处理和视频渲染的工作。

GPU是显卡电路板上的芯片,主要用来进行图像处理、视频渲染。

GPU虽然是为图像处理设计的,但如果你认为它只能进行图像处理就大错特错了。GPU在浮点运算、大数据处理、密码破解、人工智能等领域都是一把好手,比CPU更适合做大规模并行的数据运算。“没有金刚钻,不揽瓷器活,打铁还需自身硬”,如下图所示,GPU比CPU强悍的地方在于其自身架构。

CPU与GPU的架构对比

CPU有强大的ALU、复杂的控制单元,再配上分支预测、流水线、Cache、多发射,单核的功能可以做得很强大,特别擅长处理各种复杂的逻辑程序,如跳转分支、循环结构等。

但CPU的局限是,由于软件本身不可能无限拆分为并行执行,导致CPU的核数也不可能无限增加,而且在一个单核中Cache和控制单元电路就占了很大一部分芯片面积,也不可能集成太多的ALU。

后续的处理器虽然扩充了SIMD指令集,通过数据并行来提高处理器的性能,但面对日益复杂的图形处理和海量数据也是越来越力不从心。

GPU也是一种SIMD结构,但和CPU不同的是,它没有复杂的控制单元和Cache,却集成了几千个,甚至上万个计算核心。正可谓“双拳难敌四手,恶虎也怕群狼”,GPU天然多线程,特别适合大数据并行处理,在现在的计算机中被广泛使用。

在个人计算机上GPU一般以独立显卡的形式插到主板上,跟CPU一起协同工作;

在手机处理器里GPU一般以IP的形式集成到SoC芯片内部。

DSP

DSP(Digital Signal Processing,数字信号处理器),主要用在音频信号处理和通信领域

相比CPU,DSP有三个优势:

一是DSP采用哈弗架构,指令和数据独立存储,并行存取,执行效率更高。

二是DSP对指令的优化,提高了对信号的处理效率,DSP有专门的硬件乘法器,可以在一个时钟周期内完成乘法运算。为了提高对信号的实时处理,DSP增加了很多单周期指令,如单周期乘加指令、逆序加减指令、块重复指令等。

第三个优势是,DSP是专门针对信号处理、乘法、FFT运算做了优化的ASIC电路,相比CPU、GPU这些通用处理器,没有冗余的逻辑电路,功耗可以做得更小。

DSP主要应用在音频信号处理和通信领域,如手机的基带信号处理,就是使用DSP处理的。

DSP的缺陷是只适合做大量重复运算,无法像CPU那样提供一个通用的平台,DSP处理器虽然有自己的指令集和C语言编译器,但对操作系统的支持一般。

目前DSP市场被严重蚕食,在高速信号采集处理领域被FPGA抢去一部分市场,目前大多数以协处理器的形式与ARM协同工作。

FPGA

FPGA(Field Programmable Gate Array,现场可编程门阵列)在专用集成电路(Application Specific Integrated Circuit,ASIC)领域中是以一种半定制电路的形式出现的

FPGA既解决了定制电路的不足,又克服了原有可编程逻辑器件(Programmable Logic Device,PLD)门电路有限的局限。

FPGA芯片内部集成了大量的逻辑门电路和存储器,用户可以通过VHDL、Verilog甚至高级语言编写代码来描述它们之间的连线,将这些连线配置文件写入芯片内部,就可以构成具有特定功能的电路。

FPGA不依赖冯·诺依曼体系结构,也不要编译器编译指令,它直接将硬件描述语言翻译为晶体管门电路的组合,实现特定的算法和功能。

FPGA剔除了CPU、GPU等通用处理器的冗余逻辑电路,电路结构更加简单直接,处理速度更快,在数据并行处理方面最具优势。

可编程逻辑器件通过配套的集成开发工具,可以随时修改代码,下载到芯片内部,重新连线生成新的功能。正是因为这种特性,FPGA在数字芯片验证、ASIC设计的前期验证、人工智能领域广受欢迎。

FPGA一般和CPU结合使用、协同工作。

以高速信号采集和处理为例,如下图所示(ARM处理器与FPGA协同工作):

CPU负责采集模拟信号,通过A/D转换,将模拟信号转换成数字信号;然后将数字信号送到FPGA进行处理

FPGA依靠自身硬件电路的性能优势,对数字信号进行快速处理

最后将处理结果发送回CPU处理器,以便CPU做进一步的后续处理。

在嵌入式开发中,为了更方便地控制FPGA工作,可以将ARM核和FPGA集成到一块。

一种集成方式是在FPGA芯片内部集成一个ARM核,在上面运行操作系统和应用程序,这种FPGA芯片也被称为FPGA SoC。

另一种集成方式是将FPGA以一个IP的形式集成到ARM SoC芯片内,实现异构计算。这种嵌入式SoC芯片上的FPGA,一般也称为eFPGA,可以根据系统的需求配置成不同的模块,使用更加灵活。

FPGA与DSP相比,开发更具有灵活性,但成本也随之上升,上手也比较难,因此主要用在一些军事设备、高端电子设备、高速信号采集和图像处理领域。

TPU

TPU(Tensor Processing Unit,张量处理器)是Google公司为提高深层网络的运算能力而专门研发的一款ASIC芯片。为了满足人工智能的算力需求,如下图所示:

TPU内部各模块占用芯片面积比例

TPU的设计架构和CPU、GPU相比更加激进:TPU砍去了分支预测、Cache、多线程等逻辑器件,在省下的芯片面积里集成了6万多个矩阵乘法单元(Matrix Multiply Unit)和24MB的片上内存SRAM作为缓存。

核数越多,运算单元越多,内存的数据存取就越容易成为瓶颈。

TPU使用双通道内存将内存带宽提升至2倍,内部集成了24MB大小的片上内存SRAM作为统一缓冲区,来减少内存读写次数。4096个累加器虽然是寄存器,但本质上也是一种缓存,用来缓存计算产生的中间结果,不需要每次都将计算结果写回内存再读回来,进一步减少了内存带宽瓶颈,从而让TPU的计算能力彻底释放,并行计算能力相比CPU可以提升至少30倍。

TPU如果使用GPU的GDDR5内存提升内存带宽,算力会进一步提升到GPU的70倍、CPU的200倍。

在同构处理器时代,我们一般使用主频来衡量一个处理器的性能。而到了异构处理器时代,随着人工智能、大数据、多媒体编解码对海量数据的计算需求,我们一般使用浮点运算能力来衡量一个处理器的性能。

每秒浮点运算次数(Floating Point Operations Per Second,FLOPS),又称为每秒峰值速度。浮点运算在科研领域大量使用,现在的CPU除了支持整数运算,一般还支持浮点运算,有专门的浮点运算单元,FLOPS测量的就是处理器的浮点运算能力。

FLOPS的计算公式如下:

浮点运算能力=处理器核数×每周期浮点运算次数×处理器主频

除了FLOPS,还有MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS等单位,它们之间的换算关系如下:

1946年,世界上第一台通用计算机诞生于美国宾夕法尼亚大学,运算速度为300FLOPS。

早期树莓派使用的博通CM2708 ARM11处理器,主频为1GHz,运算速度为316.56MFLOPS。2011年发射的“好奇号”火星探测器,使用的是IBM的PowerPC架构的处理器,主频为200MHz,运算速度相当于Intel 80386处理器的水平,差不多在0.4GFLOPS。

Intel的Core-i5-4210U处理器运算速度为36GFLOPS,Microsoft Xbox 360运算速度为240GFLOS,ARM Mali-T760 GPU主频600MHz,运算速度为326GFLOPS,NVIDIA GeForce 840M运算速度为700GFLOPS,相当于0.7TFLOPS。

NVIDIA Tesla V100显卡,运算速度为125TFLOPS,是世界上第一个使用量突破100万亿次的深度学习GPU。

2008年,中国第一台闯入世界前10的超级计算机——中国“曙光”5000A超级计算机,计算速度为230TFLOPS,相当于0.23PFLOPS。

我国首台千万亿次的“天河一号”超级计算机运算速度为2.566PFLOPS,美国橡树岭国家实验室的“泰坦”超级计算机算力为17.59PFLOPS,“天河二号”超级计算机的运算速度为33.86PFLOPS,连续多年登顶的无锡“神威·太湖之光”超级计算机的运算速度为93.01PFLOPS,IBM设计的Summit超级计算机,运算速度为154.5PFLOPS,前些年日本的富岳超级计算机,采用ARM架构,算力达到了415.53PFLOPS,相当于0.415EFLOPS。

作者政安晨列出这些例子的目的是为了让大家理解这些算力单位。(算力、算法、数据 —— 人工智能时代三要素

因为功耗问题,TPU和显卡、AI芯片主要应用在各种服务器、云端、超级计算机上。

接下来要介绍的NPU,则以较高的性价比、性能功耗比优势在目前的手机处理器中得到了广泛应用。

NPU

NPU(Neural Network Processing Unit,神经网络处理器)是面向人工智能领域,基于神经网络算法,进行硬件加速的处理器统称。NPU使用电路来模拟人类的神经元和突触结构,用自己指令集中的专有指令直接处理大规模的神经元和突触。

人类的大脑褶皱皮层大约有300亿个神经元,如下图所示:

典型的神经元结构

每一个神经元都可以通过突触与其他神经元进行连接,不同的连接方式构成了每个人不同的记忆、情感、技能和主观经验。人与人之间的根本差别在于大脑皮层中不同神经元的连接方式,连接越多越强,人的记忆和技能就越好。
 

刚出生的婴儿除了哭和吸奶头,什么都不会,大脑还处于待开发状态,神经元之间的连接较少。

如果我们想让婴儿识别什么是苹果、什么是橘子,就要反复不停地去教他、去训练他。当婴儿看到苹果,并被告知这是一个苹果时,大脑皮层中对红色敏感的神经元就会和对“苹果”这个声音敏感的神经元建立配对、连接和关联。

通过反复不断地训练,这种连接就会加强;当这种连接加强到一定程度,婴儿再看到苹果时,通过这种突触关联,就会想到“苹果”的发音,然后通过其他连接,就可以控制嘴巴发音了:“苹果”。恭喜,你家的宝宝会认苹果了!这种连接在大脑中会不断加强、稳定,最终和其他神经元连接在一起。大脑在婴儿2~3岁的发育过程中会逐渐网络化,这个年龄也是婴儿学习的黄金期。

神经元就像26个英文字母一样,通过不同的组合和连接就构成了心理图像的物体和行为,就好像字母可以组成一个满是单词的词典一样。什么是心理图像呢,黑暗中你盯着手机屏幕,然后闭上眼,手机屏幕在视网膜上的短暂停留就类似心理图像。能力越强、记忆越好的人对于某一个事物构建的心理图像就越细腻。心理图像可以通过更多的神经突触串联在一起,组成任意数量的关联顺序(特别是做梦时),进而形成世界观、情绪、性格及行为习惯。这就好像单词可以组成各种无限可能的句子、段落和章节一样。人的学习和记忆过程,其实就是大脑皮层的神经元之间不断建立连接和关联的过程。随着连接不断加强,你对某项技能的掌握也就越来越熟练、越来越精通。如下图所示,不同的神经元之间、心理图像之间互相关联,构成了一个巨大的神经网络。

由神经元构成的神经网络

ANN(Artificial Neural Network,人工神经网络),顾名思义,就是使用计算机程序来模拟大脑的神经网络

ANN的本质是数据结构,对于特定的AI算法、AI模型而言,它的厉害之处在于它是一个通用的模型,像婴儿的大脑一样,可以学习任何东西,如说话、唱歌、作曲、聊天、下棋、绘画、图形识别。

如下图所示(ANN):

典型的ANN由数千个互连的人工神经元组成,它们按顺序堆叠在一起,构成一个层,然后以层的形式形成数百万个连接。ANN与大脑的不同之处在于,在很多情况下,每一层仅通过输入和输出接口,与它们之前和之后的神经元层互连,而大脑的互连是全方位的,神经元之间可以任意连接。

我们教婴儿认识苹果,可以通过各种各样的苹果(大的、小的、各种颜色的)来训练婴儿。

同样的道理,我们训练ANN,也是通过向其输入大量的标签数据,帮助它学习如何分析和解读数据、找出规律、输出分析结果。

2012年,人工智能科学家吴恩达教授通过对人工智能进行训练,成功地让神经网络识别了猫。在吴教授的实验里,输入数据是一千万张视频中的图像。吴教授的突破在于:将这些神经网络的层数扩展了很多,而不是简单的4层,神经元也非常多。吴教授把这次实验定义为深度学习(Deep Learning),这里的深度指神经网络变得更加复杂,有了更多的层。

经过深度学习训练的神经网络,在图像识别方面甚至比人类做得更好,识别正确率达到99%。

使用ANN的两个重要工作是训练和推理。

训练需要巨大的计算量,一般会放到云上服务器进行,训练完毕后,再去结合具体问题做应用——推理。

在云上训练神经网络也有弊端一是贵,二是对网络的依赖性高。

例如汽车自动驾驶,当汽车钻入山洞、隧道等无线网络信号不太好的地方,就可能断网、有延迟,这就给汽车自动驾驶带来了安全隐患。现在我们可以把一些训练工作放到汽车本地进行,这就是边缘计算的概念。边缘计算指在靠近物或数据源头的一侧,采用网络、计算、存储、应用为一体的开发平台,就近提供最近端服务。其应用程序在边缘侧发起,可以产生更快的网络服务响应,以满足实时、安全与隐私保护方面的业务需求。

处理器通过集成支持AI运算的NPU,就可以更加方便地支持本地的边缘计算。

深度学习的基本操作是神经元和突触的处理,传统的CPU(无论是X86还是ARM)只会基本的算术操作(加、减、乘)和逻辑操作(与、或、非),完成一个神经元的处理往往需要上千条的指令,效率很低。而NPU一条指令就可以完成一组神经元的处理,并对神经元和突触数据在芯片上的传输提供一系列专门的优化和支持,从而在算力性能上比CPU提高成百上千倍。

NPU可以单独设计为一款ASIC芯片,也可以以IP的形式集成到ARM的SoC芯片中。目前市场上有很多这方面的公司,如寒武纪、IBM、华为等。ARM公司也发布了自己的微神经网络内核,可以和自己的ARM处理器结合使用。

如下图所示:

SoC处理器中的NPU

Ethos-U55是ARM公司发布的一种小型NPU,可以与Cortex-M系列处理器搭配使用。从官方公开的资料上可以看到,Ethos-U55具有可配置的矩阵乘法单元,支持CNN和RNN,NPU内部的SRAM可以配置的大小范围为18~50KB,而SoC芯片上SRAM可以扩充到MB级别。

NPU和CPU协同工作流程如图所示:

NPU与CPU协同工作

Cortex-M55通过APB接口的寄存器配置启动Ethos-U55开始工作,Ethos-U55接着就会从NVM Flash存储器上读取神经元指令,并进行处理。处理结束后,Ethos-U55再通过IRQ中断的形式向CPU报告,CPU根据处理结果做出相应的操作即可。

结论

后摩尔时代,伴随着AI和物联网技术的发展,百家争鸣,群雄并起,涌现出越来越多的芯片玩家。不同的玩家根据实际市场需求,将通用处理器与各种创新的处理单元(各种XPU)进行融合,来应对大数据时代不同类型的海量数据处理需求。

不同的运算单元各有自己的编程模型、指令集甚至存储空间,在一个芯片内,如何让各个运算单元协同工作,如何高效互连以减少通信延迟和开销,如何发挥出芯片的最大性能,成为NoC最近几年的研究热点。

也许未来有一天,随着传统计算机架构向异构计算方向不断迭代和演进,软硬件生态将发生颠覆性变革,是否有统一的编程框架和标准出来,让我们拭目以待吧。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/745729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个H5页面中直接使用React的示例与说明

示例 如题&#xff0c;下面的个简单代码示例—在H5页面中直接使用React <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&q…

Pytorch从零开始实战21

Pytorch从零开始实战——Pix2Pix理论与实战 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——Pix2Pix理论与实战内容介绍数据集加载模型实现开始训练总结 内容介绍 Pix2Pix是一种用于用于图像翻译的通用框架&#xff0c;即图像到图像的转换。…

【数学】【计算几何】1453. 圆形靶内的最大飞镖数量

作者推荐 视频算法专题 本文涉及知识点 数学 计算几何 LeetCoce:1453. 圆形靶内的最大飞镖数量 Alice 向一面非常大的墙上掷出 n 支飞镖。给你一个数组 darts &#xff0c;其中 darts[i] [xi, yi] 表示 Alice 掷出的第 i 支飞镖落在墙上的位置。 Bob 知道墙上所有 n 支飞…

分布式之网关Gateway

Spring Cloud Gateway 1、网关简介 网关作为流量的入口&#xff0c;常用的功能包括路由转发&#xff0c;权限校验&#xff0c;限流等。 2、Gateway简介 Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架&#xff0c;定位于取代 Netflix Zuul。相比 Zuul 来说&…

抖音在线点赞任务发布接单运营平台PHP网站源码

源码简介 抖音在线点赞任务发布接单运营平台PHP网站源码 多个支付通道分级会员制度 介绍&#xff1a; 1、三级代理裂变&#xff0c;静态返佣/动态返佣均可设置。&#xff08;烧伤制度&#xff09;。 2、邀请二维码接入防红跳转。 3、自动机器人做任务&#xff0c;任务时间…

软考高级:信息系统分类-业务处理系统(TPS)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

创新发展,探索智慧园区平台架构设计与实现

随着信息技术的快速发展&#xff0c;智慧园区平台作为集成物联网、大数据、人工智能等技术的综合性服务平台&#xff0c;正逐步成为推动企业数字化转型的重要驱动力。本文将深入探讨智慧园区平台的架构设计思路、关键技术和应用场景&#xff0c;助力读者了解如何打造智慧化、协…

C# 连接neo4j数据库,包括非默认的neo4j默认库

官方文档没找见&#xff0c;自己在源码里面找到的 private string _dbHost "bolt://localhost:7687"; private string _dbUser "neo4j"; private string _dbPassword "******"; private IDriver? _driver;public CQLOperation(string _data…

【微服务-Nacos】Nacos集群的工作原理及集群间数据同步过程

上篇文章我们介绍了Nacos集群的搭建方法及步骤&#xff0c;下面我们来看一下Nacos集群的工作原理&#xff0c;一共有两部分&#xff1a;Leader节点选举及各节点数据同步。 1、Nacos集群中Leader节点是如何产生的 Nacos集群采用了Raft算法实现。它是一种比较简单的选举算法&am…

汽车电子零部件(2):EPS控制器

前言: 这里介绍一个EPS控制器EPS Controller。电动助力转向(EPS)是实现高度自动化驾驶的关键技术,比如博世EPS车型满足小型、中型、跑车以及轻型商用车的要求。EPS有一个控制车辆转向的电机。通过电机,EPS控制和辅助车辆转向,并提供最佳和享受的转向感觉。此外,新一代控…

【MIT 6.S081】2020, 实验记录(8),Lab: locks

目录 Task 1&#xff1a;Memory allocator (moderate)</font>Task 2&#xff1a;Buffer cache (hard)</font> Task 1&#xff1a;Memory allocator (moderate) 这个任务就是练习将一把大锁拆分为多个小锁&#xff0c;同时可以更加深入地理解 memory allocator 运行…

【项目研究】MeetingServer项目小研究

目录 项目研究 【vscode】 unable to connect to github.com-CSDN博客 解决跨域问题 项目截图 websocket-webrtc-chat 项目研究 完整参考 https://github.com/nnn149/MeetingServer C:\Users\duanxiongwen\Downloads\MeetingServer-master\MeetingServer-master meeting.…

边缘计算与物联网的核心 —— 低功耗芯片

一、低功耗芯片 在边缘计算与物联网&#xff08;IoT&#xff09;中&#xff0c;低功耗芯片扮演了至关重要的角色&#xff0c;主要体现在以下几个方面&#xff1a; 延长设备寿命&#xff1a;物联网设备通常需要部署在难以更换电池或不方便进行频繁维护的环境中&#xff0c;比如…

固态硬盘有缓存和没缓存有什么区别

固态硬盘&#xff08;SSD&#xff09;已经成为现代计算机的重要组成部分&#xff0c;它们提供了比传统机械硬盘更快的读写速度&#xff0c;从而显著提升了操作系统的运行速度和应用程序的加载效率。 其中&#xff0c;缓存&#xff08;Cache&#xff09;是固态硬盘中一个重要的…

基于word2vec 和 fast-pytorch-kmeans 的文本聚类实现,利用GPU加速提高聚类速度

文章目录 简介GPU加速 代码实现kmeans聚类结果kmeans 绘图函数相关资料参考 简介 本文使用text2vec模型&#xff0c;把文本转成向量。使用text2vec提供的训练好的模型权重进行文本编码&#xff0c;不重新训练word2vec模型。 直接用训练好的模型权重&#xff0c;方便又快捷 完整…

软考高级:遗留系统演化策略(集成、淘汰、改造、继承)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

【刷题训练】Leetcode415.字符串相加

字符串相加 题目要求 示例 1&#xff1a; 输入&#xff1a;num1 “11”, num2 “123” 输出&#xff1a;“134” 示例 2&#xff1a; 输入&#xff1a;num1 “456”, num2 “77” 输出&#xff1a;“533” 示例 3&#xff1a; 输入&#xff1a;num1 “0”, num2 “0”…

【计算机视觉】一、计算机视觉概述

文章目录 一、计算机视觉二、计算机视觉与其它学科领域的关系1、图像处理2、计算机图形学3、模式识别4、人工智能&#xff08;AI&#xff09;5、神经生理学与认知科学 三、计算机视觉的应用1. 人脸识别2. 目标检测3. 图像生成4. 城市建模5. 电影特效6. 体感游戏动作捕捉7. 虚拟…

java数据结构与算法刷题-----LeetCode47. 全排列 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 暴力回溯2. 分区法回溯 此题为46题的衍生题&#xff0c;在46题…

PHP极简网盘系统源码 轻量级文件管理与共享系统网站源码

PHP极简网盘系统源码 轻量级文件管理与共享系统网站源码 极简网盘是一个轻量级文件管理与共享系统&#xff0c;支持多用户&#xff0c;可充当网盘程序&#xff0c;程序无需数据库 安装步骤&#xff1a; 1.建议安装在apache环境下&#xff0c;并确保.htaccess可用 2.解压文件…