当前位置: 首页 > 编程日记 > 正文

2020 年,AI 芯片内存哪家强?

目前多家公司都在开发网络边缘系统的AI芯片,本文作者详细分析AI边缘芯片遇到的问题和挑战,并给出一些新的内存技术解决方案。

作者 | Mark LaPedus

译者 | 弯月,责编 | 伍杏玲

封图 | CSDN下载自视觉中国

出品 | CSDN(ID:CSDNnews)

以下为译文: 

目前多家公司都在开发网络边缘系统的AI芯片,然而供应商在处理结点和内存选择上面临着各种各样的难题,这些难题还会因应用而异。

例如网络边缘类的产品涉及汽车、无人机、监控摄像头、智能扬声器乃至企业服务器。所有这些应用都包含运行机器学习算法的低功耗芯片。尽管这些芯片的许多组件与其他数字芯片并无二样,但主要区别在于这些芯片的大部分处理都是在内存中,或是在内存附近进行的。

鉴于这一点,AI边缘芯片的制造商都在为下一代设备评估不同类型的内存。每种类型的内存都有自己的难题。在许多情况下芯片使用的都是成熟的工艺,而非最先进的技术,但它们本身也必须采用低功耗架构。

AI芯片有时也称为深度学习加速器或处理器,在经过优化后,可以使用机器学习来处理系统中的各种工作负载。机器学习是AI的子集,它利用神经网络处理数据并识别模式,匹配某些模式,并了解其中哪些属性很重要。

这些芯片面向整个计算应用领域,但是这些设计直接存在明显的差异。例如,为云开发的芯片通常基于高级流程,并且设计和制造成本很高。同时,边缘设备包括为汽车市场开发的芯片,以及无人机、监控摄像头、智能手机、智能门铃和语音助手。在这一广泛的领域中,每个应用都有不同的要求。例如,智能手机芯片与智能门铃的芯片截然不同。

对于许多边缘产品而言,它们的目标是开发具有刚好够用的计算能力的低功耗设备。“这类的产品无法承受300瓦的GPU。对于许多这类应用来说,即使是30瓦的GPU也太大了。”The Linley Group首席分析师Linley Gwennap表示,“但是,设备制造商仍然希望制作出一些复杂的设备。这就需要比微控制器更强大的AI功能。你需要功能强大,但又不会耗尽电池或成本过高的芯片,尤其是在消费类应用程序中。因此,你必须考虑一些颇为激进的新解决方案。”

一方面,大多数边缘设备都不需要昂贵的高级节点芯片,因为它们太昂贵了。当然也有例外。此外,许多AI边缘芯片都在内存内或在内存附近处理功能,这样做可以用更少的功耗来加速系统。

供应商们正在考虑各种内存方法,并为将来的芯片探索新的方法:

  • 使用SRAM等常规存储器。

  • 使用NOR存储器,或一种名为模拟内存计算的新技术。

  • 使用相变化存储器、MRAM、ReRAM和其他下一代存储器,AI边缘芯片已开始广泛采用这些存储器。

AI“爆炸”

机器学习问世已经几十年了。然而我们的系统没有足够的能力来运行这些算法。

近年来,由于GPU和其他芯片以及机器生成的算法的出现,机器学习开始蓬勃发展。

“从1990年代开始,机器学习才开始得到了应用,”D2S首席执行官Aki Fujimura说,“但随着GPU的出现,近年来情况发生了变化。GPU推进了深度学习的应用,因为如今我们的计算能力加强了。”

这些设备以及其他设备的目标是处理神经网络中的算法,其本质是计算矩阵乘积并求和。首先将数据矩阵加载到网络中。然后,每个元素乘以预先定好的权重,并将结果传递到网络的下一层,再乘以一组新的权重。重复几次这个步骤后,得出的结果就是有关数据的结论。

机器学习已在许多行业中得到应用,其中在半导体行业中,已经出现了几十个机器学习芯片供应商。许多都是为云开发芯片的公司。这些系统的芯片旨在加速Web搜索、语言翻译以及其他应用程序。根据Linley Group的数据,2019年这些设备的市场规模超过了30亿美元。

此外,市场上还涌现了几十个AI边缘芯片供应商,例如Ambient、BrainChip、GreenWaves、Flex Logix、Mythic、Syntiant等。预计到2024年,总共将有16亿台边缘设备配备深度学习加速器。

AI边缘芯片可使用8位计算来运行机器学习算法。“你可以在同一个地方生成、使用和处理数据。这有很大的优点:我们都会面临电池寿命的问题。如果可以不用开互联网的连接,而是在本地进行AI处理,那就可以节省大量电量。响应性也很重要,还有可靠性,以及最终也要保证隐私。”Syntiant首席执行官Kurt Busch说,“在深度学习中,最大的问题就在于内存访问。电池和性能的瓶颈最终都会落在内存上。其次,并行处理。在深度学习中,我可以并行进行数百万次乘法和累加,并通过并行处理有效地线性缩放。”

AI边缘芯片有不同的要求。例如,智能手机集成了领先的应用处理器。但其他边缘产品(比如门铃、监控摄像头和扬声器等)则并非如此。

UMC业务开发副总裁Walter Ng表示:“边缘设备的解决方案涉及经济的问题。它必须对成本非常敏感。整体目的是具有竞争力的成本、低功耗以及简化的计算分布。”

此外,还有其他因素需要考虑。许多AI边缘芯片供应商都需要在40nm左右的成熟节点上交付产品。目前这一工艺很理想,成本并不昂贵。但展望未来,供应商希望以低功耗获得更高的性能。下一个节点是28nm,这也很成熟而且很便宜。最近,制造厂商已经引入了各种22nm的工艺,这是28nm的扩展。

22nm比28nm略快,但是价格高。大多数供应商都不会迁移到16nm/14nm的finFET,因为太贵了。

迁移到下一个节点不是一个简单的决定。“如今许多客户及其应用都在40nm上。” Ng说,“当着眼于下一个节点路线图时,他们是否会满意,并在28nm上获得最佳性价比?还是说22nm看起来比28nm更具吸引力,能提供更多好处?这是许多人都在考虑的因素。”

使用传统的内存技术

在传统系统中,内存层次结构很简单。为此,我们将SRAM集成到可以访问常用程序的高速缓存处理器。用于主内存的DRAM是独立的,位于内存模块中。

在大多数系统中,数据会在内存和处理器之间来回移动。但是这种交换会导致等待时间和功耗的增加,有时也称为“内存墙”,而且这个问题会随着数据量的增加而变得越来越严重。

因此,在内存内或内存附近进行计算,就非常适合解决这个问题。内存内计算可以将需要处理的任务放到内存中,而内存附近计算可以使用距离处理逻辑最近的内存。

并非所有芯片都使用内存计算。但是,AI边缘芯片供应商正在使用这些方法来打破内存墙。他们还从云上转移了一些处理功能。

去年,Syntiant推出了第一款产品“神经决策处理器”,该处理器将神经网络体系结构集成到了一个小巧的低功耗芯片中。这个40nm的音频设备还集成了具有112KB RAM的Arm Cortex-M0处理器。

Syntiant基于SRAM的存储器,将其体系结构归类为围绕内存的计算。该芯片背后的想法是让语音成为系统中的主要接口。亚马逊的Alexa就是一个很好的在线语音界面的例子。

语音是下一代的界面。”Syntiant的Busch说,“我们专门构建了这些解决方案,为所有电池供电的设备(小到助听器到,大到笔记本电脑或智能扬声器)增加了长期在线的语音接口。”

Syntiant正在开发新设备,并在研究不同的存储器类型。“我们正在研究一些新兴的内存技术,例如MRAM和ReRAM,主要是为了提高存储密度。”Syntiant首席科学家Jeremy Holleman说,“首先是读取时的耗电,其次待机时的耗电也是一件大事,因为对于大型模型,最终的内存都会很大。但是,也许你只需要在给定实例上对进行较小一部分的计算。在不使用存储单元时,降低耗电的能力非常关键。”

目前不需要高级流程。“在可预见的将来,先进节点的泄漏对于超低功耗应用来说太高了。” Syntiant的Busch说,“边缘设备经常无所事事。与数据中心中的设备相反,一旦开机就需要处理计算,而且你也希望它一直运转。但边缘设备经常在等待事情的发生。因此,你需要非常低的功耗,而高级节点并不擅长于此。”

如今,大多数AI芯片都依赖内置的SRAM,速度很快。“但是,无论采用哪种技术,使用SRAM在独立的数字边缘处理器中安装数百万级的芯片都是非常昂贵的。”Cypress IP业务部设计总监Vineet Kumar Agrawal表示,“从DRAM获取数据的代价比从内部SRAM获取数据的代价高500倍。”

同时,许多AI边缘芯片供应商正在使用或寻找另一种内存类型:NOR。NOR是一种非易失性闪存,用于独立和嵌入式应用程序中。NOR通常用于代码存储。

NOR技术成熟,但需要在每个节点上都增加额外且昂贵的屏蔽步骤。而且很难将NOR的规模扩展到28nm/22nm以上。不过,有些公司正在使用当今的NOR闪存,开发一种称为模拟内存计算的技术。这些设备大多数是从40nm节点开始的。

“看看传统的数字AI架构功耗的两个主要来源都是计算:乘法和加法。然后,其次是将数据从内存移至计算单元,然后再移回去。”Linley Group的Gwennap解释说,“人们的尝试都是在解决这两个问题。他们将计算直接放入存储电路中,因此数据就不必移动太远。他们没有使用传统的数字乘法器,而是使用了模拟技术,让电流能够通过可变电阻运行。然后使用欧姆定律来计算电流和电阻的乘积。”

在内存内的模拟技术有望降低功耗。但是,并非所有的NOR都是一样的。例如,某些NOR技术基于浮栅体系结构。

Microchip使用基于NOR的浮栅方法,开发了一种用于机器学习的内存内模拟计算架构。该技术集成了乘法累加(multiply-accumulate,MAC)处理引擎。

“采用这种方法,用户无需将模型参数或权重存储在SRAM或外部DRAM中。”Microchip SST部门嵌入式存储器产品开发总监Vipin Tiwari表示,“将输入数据提供给阵列进行MAC计算。这样做可以消除MAC计算中的存储瓶颈,因为计算是在存储权重的地方完成的。”

还有其他NOR的方法。例如,Cypress长期以来一直在提供另一种称为SONOS的嵌入式NOR闪存技术。SONOS基于电荷陷阱闪存,是一种双晶体管技术,可以通过从氮化物层添加或去除电荷来改变阈值电压,它适用于28nm以下的各种节点。

SONOS经过优化后可以作为机器学习的嵌入式存储器。“两个SONOS多位嵌入式非易失性存储单元最多可以替代8个SRAM单元,即48个晶体管。这非常有效,而且你还可以将功率效率和吞吐量提高50-100倍。”Cypress的Agrawal说,“SONOS使用高度线性和低功率的隧穿工艺进行编程,该工艺能够通过高度控制来瞄准Vts,从而产生纳安级比特单元电流水平。这与使用热电子的浮栅相反,在浮栅中你无法控制流入电池的电流量。另外,你的电池电流要高得多。”

使用新的内存技术

由于NOR无法扩展到28nm/22nm以上,因此AI边缘芯片供应商正在研究几种下一代存储器类型,例如相变存储器(PCM)、STT-MRAM、ReRAM等。

对于AI而言,这些存储器还运行带有神经网络的机器学习应用程序。

这些存储器很有吸引力,因为它们将SRAM的速度和闪存的非易失性结合在一起,具有无限的耐久性。但是,由于新存储器使用复杂的材料和切换方案来存储数据,因此它们的开发时间更长。

“半导体制造商从基于电荷的存储器(SRAM、NOR)迁移到电阻性存储器(ReRAM,PCM)时面临新的挑战,”KLA过程控制解决方案亚洲地区总监Masami Aoki说,“这些新兴的存储器由新元素组成,需要精确控制材料性能和新的缺陷控制策略,才能确保性能均匀性和可靠性,特别是对于大规模集成而言。”

长期以来,英特尔一直在发售3D XPoint,这是一种PCM。美光公司也出售PCM。非易失性存储器PCM通过更改材料的状态来存储数据,比具有更好耐久性的闪存快。

PCM是一项具有挑战性的技术,尽管供应商已解决了这些问题。“使用3D XPoint相变存储器,硫族物对环境条件和过程化学反应异常敏感。”Lam Research执行副总裁兼首席技术官Rick Gottscho表示,“处理所有这些问题的技术策略多种多样。”

PCM也是AI的目标。2018年,IBM发表了一篇关于使用PCM处理8位精度内存乘法技术的论文。尽管还没有人批量销售产品,但是IBM和其他公司仍在为AI边缘应用程序开发PCM。

STT-MRAM也在发售中,它具有SRAM的速度和闪存的非易失性以及无限的耐用性。它利用电子自旋的磁性在芯片中提供非易失性。

STT-MRAM是嵌入式应用的理想选择,旨在取代22nm及更高波长的NOR。“看看新的内存,MRAM是低密度(小于1Gb)的最佳选择。MRAM是最好的嵌入式内存。它比NOR更好,尽管你可以在28nm或更大的芯片上采用NOR。NOR添加了12个以上的蒙版,因此从成本、密度和性能的角度来看,MRAM是嵌入式的首选。”MKW Ventures Consulting负责人Mark Webb说。

但是,一些专家认为,MRAM仅支持两个级别,因此不适合内存计算。有些人则有不同的看法。Imec杰出的技术人员Diederik Verkest说:“一个MRAM设备确实只能存储一个位。但是,在内存计算中,重要的是要了解存储设备和计算单元之间的差异。计算单元执行存储的权重和输入激活的乘法。在最佳情况下,计算单元内部的存储设备可以存储多个重量级别。但是,可以使用多个存储设备制作存储权重的计算单元。如果使用3级权重(则权重可以为-1、0、1),则可以使用两个存储设备,并且计算单元将由两个存储设备以及围绕该存储单元的一些模拟电路组成,用以计算乘积重量值和激活。因此,MRAM设备可以在计算单元内部使用,存储多级权重并构建内存计算解决方案。”

ReRAM是另一种选择。与闪存相比,该技术具有更低的读取延迟和更快的写入性能。ReRAM将电压施加到材料堆栈上,从而导致电阻变化,并将数据记录在内存中。

在最近的IEDM会议上,Leti发表了一篇论文,介绍了有关有关使用模拟和ReRAM技术开发集成脉冲神经网络(Spiking Neural Network,SNN)的芯片技术。130nm测试芯片的每个峰值功耗为3.6pJ,一台使用28nm FD-SOI的研发设备。

SNN与传统的神经网络不同。Linley Group的Gwennap表示:“它不会有任何耗电,除非输入发生变化。因此,从理论上讲,如果你的监控摄像头正对着你的前院,那么它就是理想的选择。除非有人走过去,否则一切都不会改变。”

Leti的SNN设备是边缘的理想选择。Leti的研究工程师Alexandre Valentian说:“到底边缘是什么意思,还有待观察,但是我可以说ReRAM和SNN是特别针对端点设备而定制的。ReRAM和脉冲编码非常适合,因为这种编码策略简化了内存计算。不需要在输入端使用DAC(如矩阵矢量乘法),它可以简化输出端的ADC(位数更少),或者如果神经元是模拟的,则最终将其完全删除。”

然而,ReRAM很难开发。只有少数几个零件可用。“在我们看来,理论上 ReRAM适合于1T1R设计(嵌入式),以及将来使用合适的交叉点选择器的1TnR。难点在于,过去两年中实际产品的开发非常缓慢。我们认为,这是由于存储元素本身的保留问题和干扰(相对于循环)。这些问题需要解决,我们需要具有64Mbit嵌入式和1Gbit交叉点的产品。” MKW的Webb说。

总而言之,在下一代存储器中,哪一类更适合于AI边缘应用尚无共识。业界继续探索当前和未来的选择。

例如,Imec最近在评估了几种选择后,使用名为AiMC的模拟内存计算架构启用10000TOPS/W矩阵矢量乘法器。

Imec评估了三个选择:SOT-MRAM、IGZO DRAM和投影PCM。自旋轨道扭矩MRAM(Spin-orbit torque MRAM,SOT-MRAM)是下一代的MRAM。而氧化铟镓锌(indium gallium zinc oxide,缩写:IGZO)是一种新型的晶体结构。

Imec的Verkest表示,“存储DNN的权重的设备有很多种。这些设备使用不同的机制来存储权重值(磁性、电阻、电容),并采用AiMC阵列的不同实现。”

总结

目前尚不清楚哪种当前或下一代内存技术是赢家。也许所有技术都拥有一席之地。SRAM、NOR和其他常规存储器也有用武之地。

但数十家AI芯片供应商的空间不大。目前已有重大动荡的迹象,大型公司开始收购创业公司。与所有新的芯片部门一样,有些公司将取得成功,有些将被收购,而有些将失败。

原文链接:

https://semiengineering.com/memory-issues-for-ai-edge-chips/

本文为CSDN翻译文章,转载请注明出处。

推荐阅读

  • GitHub标星2000+,如何用30天啃完TensorFlow2.0?

  • 清华周界详解《基于图神经网络的事实验证》 |  百万人学AI

  • 百年 IBM 终于 All In 人工智能和混合云!

  • 微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!

  • 机器学习项目模板:ML项目的6个基本步骤

  • BM、微软、苹果、谷歌、三星……这些区块链中的科技巨头原来已经做了这么多事!

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

Excel数字、文本混合列导入SQL Server出现的问题&解决办法

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://annie-out.blogbus.com/logs/60276495.htmlExcel文件:序号 姓名 内部电话 住址 1 小李 1234 …… 2 小王5678……3小张2345(国内长途)…………………………如上结构的…

ARM 位置无关代码(PIC)的分析理解

2019独角兽企业重金招聘Python工程师标准>>> PIC的特点是: 它被加载到任意地址空间都可以正确的执行。其原理是PIC对常量和函数入口地址的操作都是基于PC偏移量的寻址方式。即使程序被移动,但是PC也变化了,而偏移量是不变的&#…

Linux压缩/解压缩

整合资源,仅供自己参考:) TAR 命令名 tar - tar 档案文件管理程序的 GNU 版本。下面将逐个介绍其含义 总览 tar [ - ] A --catenate --concatenate | c --create | d --diff --compare | r --append | t --list | u --update | x -extract -…

为什么校招面试中总被问“线程与进程的区别”?我该如何回答?

作者 | 宇宙之一粟责编 | 徐威龙出品 | AI 科技大本营(rgznai100)进程与线程?(Process vs. Thread?)面试官(正襟危坐中):给我说说“线程”与“进程”吧。我(总…

Linux线程编程

1.编译 undefined reference to pthread_create问题解决 出现如下错误: undefined reference to pthread_create undefined reference to pthread_join 问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread…

PHP引擎php.ini 和fastcti优化

1.1 php引擎缓存优化加速1)eaccelerator2)Zend3)xcache1.2 使用tmpfs作为缓存加速的的文件目录[rootLNMP ~]# mount -t tmpfs /dev/shm -o size256m[rootLNMP ~]# mount -t tmpfs /dev/shm/ /tmp/eaccelerator/提示:1、上传图片缩…

从*p++说指针,数组,结构和函数

说明文中*p和*s都是一个东西&#xff0c;不做字面上的统一了。 因为右结合性&#xff0c;*p 其实就是 *(p) 1.strlen的实现 #include <stdio.h> main(){char str[] "Abcde";printf("\n string %s length %d \n",str,str_length(str)); }int str…

8比特数值也能训练模型?商汤提训练加速新算法丨CVPR 2020

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;在CVPR 2020上&#xff0c;商汤研究院链接与编译团队、高性能计算团队和北航刘祥龙老师团队合作提出了用于加速卷积神经网络训练过程的INT8训练技术。该工作通过将网络的输入、权重和梯度量化到8比特来加速网络的前向传…

×××作,不知写些什么

博客&#xff0c;老是有写的冲动&#xff0c;不过&#xff0c;没什么韧劲坚持&#xff0c;自己感觉文采一般般啦&#xff0c;有时兴起&#xff0c;挥毫泼墨&#xff0c;蜡笔重唱一番&#xff0c;呵呵&#xff0c;自个爽朗了&#xff0c;呵呵 所以&#xff0c;自己坚持&#xff…

centos7 install 安装mysql

CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件&#xff0c;需要去官网上下载 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community-release-el7-5.noarch.rpm # yum install mysql-community-server成功安装之…

AI四巨头Google、DeepMind、Microsoft、Uber深度学习框架大比拼

编者按&#xff1a;Google、Uber、DeepMind和Microsoft这四大科技公司是当前将深度学习研究广泛应用于自身业务的典型代表&#xff0c;跻身全球深度学习研究水平最高的科技公司之列。GPipe、Horovod、TF Replicator和DeepSpeed分别是这四家公司开发应用的深度学习框架&#xff…

转《刘润的数字化家庭》

数字家庭也是我的一大梦想&#xff0c;感谢刘润让我的想法更加丰富和具体。。。 转载自刘润的博客&#xff0c;原文地址&#xff1a;http://blog.run2me.com/runliu/archive/2010/06/12/37082.aspx 1 of 22 &#xff08;大图&#xff09;&#xff1a;用数字化的技术&#xff0c…

自己写的内存池Slabs

看memcached的源码写的&#xff0c;虽然很粗糙&#xff0c;但是基本思想还是有的&#xff0c;自娱自乐&#xff0c;后期不断改进。 #include <stdio.h> #include <stdlib.h> #include <string.h>struct st{void * start;void * end;char ptr[10]; }; struct …

Eclispse Che(2):启动Che服务,进入IDE界面

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50888878 未经博主允许不得转载。 博主地址是&#xff1a;http://blog.csdn.net/freewebsys 1&#xff0c;关于Docker 上次使用Che的时候没有成功创建Project。 其实主要问题就是docker的网络问题。 使用…

使用strace和ltrace跟踪程序调用

ltrace能够跟踪进程的库函数调用,它会显现出哪个库函数被调用,而strace则是跟踪程序的每个系统调用.1.系统调用的输出对比程序代码&#xff1a;#include <stdio.h> main(){char str[] "Abcde";printf("\n string %s length %d \n",str,str_length(…

NeHe OpenGL第三十三课:TGA文件

NeHe OpenGL第三十三课&#xff1a;TGA文件 加载压缩和未压缩的TGA文件: 在这一课里&#xff0c;你将学会如何加载压缩和为压缩的TGA文件&#xff0c;由于它使用RLE压缩&#xff0c;所以非常的简单&#xff0c;你能很快地熟悉它的。 我见过很多人在游戏开发论坛或其它地方询问…

阿里自动驾驶新突破!达摩院自研ISP图像处理器大幅提升安全性

阿里巴巴达摩院在自动驾驶领域取得新突破&#xff01;4月8日&#xff0c;据记者了解&#xff0c;达摩院已经自主研发出用于车载摄像头的ISP处理器&#xff0c;保障自动驾驶车辆在夜间拥有更好的“视力”&#xff0c;“看”得更清晰&#xff0c;从而大幅提升自动驾驶安全性, 而背…

3月14号作业

<!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title></title> </head> <body> <br/> <br/> <img src"51job表单_03.gif"</br> <br/> <br/>…

NeHe OpenGL第三十五课:播放AVI

NeHe OpenGL第三十五课&#xff1a;播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢&#xff1f;利用Windows的API把每一帧作为纹理绑定到OpenGL中&#xff0c;虽然很慢&#xff0c;但它的效果不错。你可以试试。 首先我得说我非常喜欢这一章节.Jonathan de Blok使我产生…

为什么TCP的TIME_WAIT状态要保持2MSL?

TIMEWAIT状态也称为 2MSL等待状态。每个具体TCP实现必须选择一个报文段最大生存时间MSL(Maximum Segment Lifetime)。它是任何报文段被丢弃前在网络内的最长时间。我们知道这个时间是有限的&#xff0c;因为TCP报文段以IP数据报在网络内传输&#xff0c;而IP数据报则有限制其生…

深度 | 一文读懂“情感计算”在零售中的应用发展

作者 | 黄程韦博士、刘刚、包飞博士、杨现博士、孙皓博士、沈艺博士来源 | 苏宁零售技术研究院零售商需要不断通过创新服务来提高顾客的购物体验&#xff0c;而情感计算在该领域具有独特优势。它在零售行业的应用&#xff0c;主要集中在提升购物体验的服务中。在这个科技逐步改…

mysql基于replication实现最简单的M-S主从复制

2019独角兽企业重金招聘Python工程师标准>>> 什么是replication Replication可以实现数据从一台数据库服务器&#xff08;master&#xff09;复制到一到多台数据库服务器。 默认情况下&#xff0c;属于异步复制&#xff0c;因此无需维持长连接。 通过配置&#xff0…

Linux下高并发socket最大连接数所受的各种限制

修改最大打开文件数 # ulimit -n 修改最大进程数 # ulimit -u ------------------------------------------------------ Linux下高并发socket最大连接数所受的各种限制 转自&#xff1a;http://blog.csdn.net/guowake/article/details/6615728 1、修改用户进程可打开…

linux安全问答(1)

一、如何限制对系统资源的过度使用&#xff1f; &#xff08;1&#xff09;、编辑/etc/security/limits.conf文件&#xff0c;在其中加入或改变下面这些内容&#xff1a; * hard core 0 //禁止创建core文件 * hard rss 5000 //表示除root用户之外&#xff0c;其他用户都只能最多…

快速搭建对话机器人,就用这一招!

作者 | Milvus.io 责编 | 胡巍巍问答系统是自然语言处理领域一个很经典的问题&#xff0c;它用于回答人们以自然语言形式提出的问题&#xff0c;有着广泛的应用。其经典应用场景包括&#xff1a;智能语音交互、在线客服、知识获取、情感类聊天等。常见的分类有&#xff1a;生成…

目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?...

目前流行的源程序版本管理软件和项目管理软件&#xff1a;Microsoft TFS&#xff0c;Github&#xff0c;SVN&#xff0c;Coding 各自的优缺点&#xff1a; Microsoft TFS&#xff1a;优点&#xff1a;任务版上能将需求、项目进度一览无余&#xff0c;对于小团队而言&#xff0c…

孙鑫mfc学习笔记第十四课

第十四课网络的相关知识&#xff0c;网络程序的编写&#xff0c;Socket是连接应用程序与网络驱动程序的桥梁&#xff0c;Socket在应用程序中创建&#xff0c;通过bind与驱动程序建立关系。此后&#xff0c;应用程序送给Socket的数据&#xff0c;由Socket交给驱动程序向网络上发…

Linux环境编译安装Mysql以及补装innodb引擎方法

mysql安装 5.6以后可能会收费&#xff0c;所以选择5.1以下从台湾中山大学镜像下载 1.首先要安装C编译环境 # yum install gcc-c 2.下载解压 # wget http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz# tar zxvf mysql-5.1.73.tar.gz# cd mysql-5…

Python 炫技操作:合并字典的七种方法

来源 | Python编程时光&#xff08;ID: Cool-Python&#xff09;Python 语言里有许多&#xff08;而且是越来越多&#xff09;的高级特性&#xff0c;是 Python 发烧友们非常喜欢的。在这些人的眼里&#xff0c;能够写出那些一般开发者看不懂的高级特性&#xff0c;就是高手&am…

shell脚本编程基础(1)及RAID阵列

shell脚本&#xff1a;Linux从底层到上层的系统架构&#xff1a;硬件-->内核-->库(lib)-->shell-->用户。shell既是一种命令语言&#xff0c;也是程序设计语言&#xff08;shell脚本&#xff09;&#xff0c;作为一种命令语言&#xff0c;它提供了用户与内核的交互…