A. 我现在用的是ARM CortexA9,每次跑程序耗时差别很大
先让你的图像处理进程用简单的循环指令延时程序替代,再进行测试:
如果执行的时间都相同的话,那么就是你的图像处理方法自身引起的执行时间不一致。
如果也不同,那么有可能是系统的消耗引起的,逐一停掉其他进程进行测试,检查缓存,内存处理,甚至定时器(晶振的稳定性)等等,逐一排查。
B. 在armv8下编译的时候使用了O3优化,相关计算就会自动使用neon吗
对的。GCC可以通过自动向量化产生NEON指令
C. arm-linux编译后程序太大 怎样优化
gcc编译能运行,见鬼了吧???把你的步骤亮出看看。一办交叉编译是没有做好库文件的处理
D. 仔细看看ARM的机器学习硬件 它具有怎样的优势
几周前,ARM宣布推出第一批专用机器学习(ML)硬件。在“Project Trillium”项目中,该公司为智能手机等产品推出了专用的ML处理器,以及专门为加速对象检测(OD)用例而设计的第二款芯片。让我们更深入地研究下ProjectTrillium项目,以及该公司为不断增长的机器学习硬件市场制定的更广泛计划。
值得注意的是,ARM的声明完全与推理硬件有关。其ML和OD处理器被设计成能有效地在消费级硬件上运行经过训练的机器学习任务,而不是在庞大的数据集上训练算法。首先,ARM将重点放在ML推理硬件两大市场:智能手机和互联网协议/监控摄像头。
新的机器学习处理器
尽管Project Trillium发布了新的专用机器学习硬件公告,但ARM仍然致力于在其CPU和GPU上支持这些类型的任务,并在其Cortex-A75和A55内核中实现了优化的点积产品功能。Trillium通过更加优化的硬件增强了这些功能,使机器学习任务能够以更高的性能和更低的功耗完成。但是ARM的ML处理器并不仅仅是一个加速器——它本身就是一个处理器。
该处理器在1.5W的功率范围内拥有4.6 TOP/s的峰值吞吐量,使其适用于智能手机和更低功耗的产品。基于7纳米的实施,这给芯片提供了3 TOP/W的功率效率,同时,这对于节能产品开发商来说是一个很大的吸引力。
有趣的是,ARM的ML处理器与高通(Qualcomm)、华为(Huawei)和联发科技(MediaTek)采用一种不同的实现方式,所有这些处理器都重新设计了数字信号处理器(DSP),以帮助他们在高端处理器上运行机器学习任务。在MWC(全球行动通讯大会)的一次聊天中,ARM副总裁Jem Davies提到,收购DSP公司是进入这个硬件市场的一个选择,但最终,该公司决定为最常见的操作进行专门优化的地面解决方案。
ARM的ML处理器专为8位整数运算和卷积神经网络(CNNs)设计。它专门用于小字节大小数据的大量乘法,这使得它在这些类型的任务中比通用DSP更快,更高效。CNN被广泛用于图像识别,可能是目前最常见的ML任务。所有这些读取和写入外部存储器通常会成为系统中的瓶颈,因此ARM也包含了一大块内部存储器以加速执行。这个内存池的大小是可变的,ARM希望根据用例为其合作伙伴提供一系列优化设计。
ARM的ML处理器专为8位整数运算和卷积神经网络而设计
ML处理器核心可以从单一核配置到16个核,以提高性能。每个组件包括优化的固定功能引擎和可编程层。这为开发人员提供了一定程度的灵活性,并确保处理器能够随着他们的发展而处理新的机器学习任务。该单元的控制由网络控制单元监控。
最后,处理器包含一个直接存储器访问(DMA)单元,以确保快速直接访问系统其他部分的内存。ML处理器可以作为自己的独立IP模块,具有ACE-Lite接口,可以将其并入SoC,或者作为SoC之外的固定模块运行,甚至可以与Armv8.2-A CPU(如Cortex-A75和A55)一起集成到DynamIQ集群中。集成到DynamIQ集群可能是一个非常强大的解决方案,可以为集群中的其他CPU或ML处理器提供低延迟数据访问并有效地完成任务调度。
适合所有的一切
去年ARM推出了Cortex-A75和A55 CPU处理器,以及高端的Mali-G72 GPU,但直到一年后才推出专用机器学习硬件。但是,ARM确实在其最新的硬件设备中对加速通用机器学习操作进行了相当多的关注,而这仍然是该公司未来战略的一部分。
其最新的主流设备Mali-G52图形处理器将机器学习任务的性能提高了3.6倍,这要归功于Dot产品(Int8)的支持和每个通道每个通道的四次乘法累加操作。Dot产品支持也出现在A75、A55和G72中。
即使有了新的OD和ML处理器,ARM仍在继续支持其最新CPU和GPU的加速机器学习任务。其即将推出的专用机器学习硬件的存在,使这些任务在适当的时候更加高效,但它是一个广泛的解决方案组合中的一部分,旨在满足其广泛的产品合作伙伴。
从单核到多核的CPU和GPU,再到可以扩展到16核的可选ML处理器(可在SoC核心集群内外使用),ARM可支持从简单的智能扬声器到自动车辆和数据中心,其需要更强大的硬件。当然,该公司也提供软件来处理这种可扩展性。
该公司的Compute Library仍然是处理公司CPU、GPU和现在ML硬件组件的机器学习任务的工具。该库为图像处理、计算机视觉、语音识别等提供低级的软件功能,所有这些功能都运行在最适用的硬件上。ARM甚至用其CMSIS-NN内核为Cortex-M微处理器支持嵌入式应用程序。与基线功能相比,CMSIS-NN提供高达5.4倍的吞吐量和5.2倍的能效。
硬件和软件实现的这种广泛的可能性需要一个灵活的软件库,这正是ARM的神经网络软件的切入点。该公司并不打算取代像TensorFlow或Caffe这样的流行框架,而是将这些框架转换成与任何特定产品的硬件相关的库。因此,如果您的手机没有ARM ML处理器,则该库仍将通过在CPU或GPU上运行任务来工作。隐藏在幕后的配置以简化开发是它的目标。
今天的机器学习
目前, ARM正专注于为机器学习领域的推理提供支持,使消费者能够在他们的设备上高效地运行复杂算法(尽管该公司并未排除参与硬件进行机器学习训练的可能性)。随着高速5G网络时代的到来,人们对隐私和安全的关注越来越多,ARM决定在边缘推动ML计算,而不是像谷歌那样聚焦在云上,这似乎是正确的选择。
最重要的是,ARM的机器学习能力并不仅限于旗舰产品。通过支持各种硬件类型和可扩展性选项,价格阶梯上下的智能手机可以受益,从低成本智能扬声器到昂贵服务器的各种产品都可以受益。甚至在ARM专用的ML硬件进入市场之前,利用它的Dot产品增强CPU和GPU的现代SoC,将会获得性能和能效的改进。
今年,我们可能不会在任何智能手机上看到ARM专用的ML和对象检测处理器,因为已经发布了大量SoC公告。相反,我们将不得不等到2019年,才能获得一些受益于Trillium项目及其相关硬件的第一批手机。
E. c代码优化,用arm汇编或者别的什么方法来优化下面的代码
刚开始学习STM32汇编,可能不是最简形式;以下程序MDK编译通过了;
;***********************************************
; ALPHA_FORMULA_1 ;参数传递S=R1,D=R2,A=R3
;***********************************************
ALPHA_FORMULA_1
PUSH {R0,R1,R3-R7,LR}
MUL.W R0,R1,R3
MOV.W R4,#0X1F
SUB.W R4,R3
MUL.W R4,R2
LSR.W R4,R4,#0X05
ADD.W R2,R0,R4
POP {R0,R1,R3-R7,PC}
;***********************************************
;alpha_blend_2 ;参数传递P1=R1,P2=R2,A=R3
;参数p2_t由R0传出
;***********************************************
alpha_blend_2
PUSH {R1-R7,LR}
LDR.W R4,=0Xf81f07e0 ;R4=p1_t = (p1 & 0xf81f07e0);
AND.W R4,R1
LDR.W R5,=0X07e0f81f ;R5=p1 &= 0x07e0f81f
AND.W R5,R1
LDR.W R6,=0Xf81f07e0 ;R6=p2_t = (p2 & 0xf81f07e0);
AND.W R6,R2
LDR.W R7,=0X07e0f81f ;R7=p2 &= 0x07e0f81f;
AND.W R7,R2
ROR.W R4,R4,#16 ;LOOP_SHIFT_R(p1_t, 16); //p1_t 循环右移 16位;
ROR.W R6,R6,#16 ;LOOP_SHIFT_R(p2_t, 16); //p2_t 循环右移 16位;
MOV.W R1,R4 ;ALPHA_FORMULA_1(p1_t, p2_t, a); //公式套用
MOV.W R2,R6
BL.W ALPHA_FORMULA_1
MOV.W R6,R2
MOV.W R1,R5 ;ALPHA_FORMULA_1(p1, p2, a);
MOV.W R2,R7
BL.W ALPHA_FORMULA_1
MOV.W R7,R2
LDR.W R2,=0X07e0f81f ;R6=p2_t &= 0x07e0f81f; //
AND.W R6,R2
LDR.W R2,=0X07e0f81f ;R7=p2 &= 0x07e0f81f;
AND.W R7,R2
ROR.W R6,R6,#16 ;LOOP_SHIFT_R(p2_t, 16); //p2_t循环右移 16位;
ORR.W R7,R6 ;p2_t |= p2;
MOV.W R0,R6 ;return p2_t;
POP {R1-R7,PC}
;***********************************************
F. 如何优化C代码ARMCC问题,怎么解决
物流管理的目标之一就是实现最低库存。最低库存的目标是减少资产负担和提高相关的周转速度。存货可用性的高周转率意味着分布在存货上的资金得到了有效的利用。因此,保持最低库存就是要把存货减少到与客户服务目标相一致的最低水平。
国外的物流供应链一环扣一环,而我们是各管一摊,管供应的就只管供应,管销售的只管销售。而人家是从高端到终端一竿子捅到底,所有的环节都是电脑控制。目前我国物流欠缺的就是有效的供应链。国内分销企业掌握的市场分销额,实际上是一个大约数,真正销出去了多少,批发商只是根据发出去的货来统计,究竟零售商仓库里压着多少货,是统计不出来的。优化库存管理对物流来说迫在眉睫。笔者认为,打造供应链的伙伴关系可以大幅度地降低库存,从而实现物流管理的目的。
合作伙伴关系把库存管理提升高层次
全球制造和经济一体化促使了企业间竞争的不断加剧,并逐渐由同行业单个企业间的竞争演变为由一系列上下游合作伙伴企业构成的供应链之间的竞争。众所周知,库存管理在企业经营管理中处于重要地位,作为一种“扩展型”企业,库存管理在其运作中更为重要,原因是库存不仅影响着某一节点企业的成本,而且也制约着供应链的综合成本、整体性能和竞争优势。因此,这种演变使得企业不能以各自为政、局部最优的思想指导其库存管理,而应该更多地从供应链企业伙伴关系的角度考虑其库存管理战略,从而推动了供应链库存管理思想和方法的进化,最终提高了库存管理的效益。
近年来的研究表明,合作伙伴关系对于提升供应链竞争力具有重要作用,合作伙伴关系被认为是供应链的关键要素之一。合作伙伴关系考虑如何选择外部合作伙伴、如何同企业建立和管理伙伴关系,成功的合作伙伴关系促使合作各方积极关注伙伴的成功,并同他们一起努力提升整个供应链的竞争力。战略伙伴关系通常能在长期内给供需双方带来收益。
合作伙伴关系对库存管理也提出了相应的目标和要求。合作伙伴关系把库存管理提升到整个供应链的层次,库存管理不再单是供应商、生产商个人的管理活动,合作伙伴共同参与库存的管理活动,他们对共同参与库存管理活动提出了实施的目标构架。因此供应链上各方基于此构架上达成一致原则,在此基础上进行供应链的库存管理活动。理想的供应链库存管理是一种基于合作伙伴关系基础上的,强调信息共享、利益共享、风险分担库存管理实现模式。
将交易频率作为选择合作伙伴的重要标准
实践中的合作伙伴关系是个发展的、动态的概念,它的不同程度对于供应链库存管理也有不同的要求,从简单的信息共享(如生产商帮助供应商提高需求计划的准确性)到委托机制的决策(如供应商管理和拥有库存),再到生产商使用为止都表现了供应链库存管理在实践中的不同思想和方法。
研究发现合作伙伴关系的发展程度主要受彼此在供应链合作中的地位影响,同样供应链库存管理也依次出现了不同的管理方式,快速响应(QR)、持续补货策略(CRP)、高级的持续补货策略(Advanced CRP)、供应商管理库存(VMI)、联合库存管理(JMI)、合作计划预测补给(CPFR)等库存管理策略都是适应不同的合作伙伴关系。对于不同程度的合作伙伴关系应选择不同的库存管理模式,合作伙伴关系中供需双方的相对地位的强弱决定了采用响应的供应链库存管理策略。
目前我国企业在选择合作伙伴时,主要的标准是产品质量,这与国际上重视质量的趋势是一致的。然而,在交易量与交易频率这两个标准的使用上却明显存在偏激,许多企业都倾向于将单次高交易量的客户作为合作伙伴的选择对象,而忽略了那些低交易量、高交易频率的客户。交易量是指企业与客户往来生意的金额大小;交易频率是指供应商与客户往来生意次数的多少,它们之间存在着本质的区别。从长远来看,企业与客户生意往来的频繁程度,对于合作伙伴关系的建立具有深远的影响。客户通常依照交易次数的频繁程度来看待一个供应商、分销商。如果往来不甚频繁,客户很难跳出传统交易关系的心理,也无法从不同的交易中寻找连结,因而他们很难从这些单独的交易中发现合作伙伴关系的价值所在。因此,对于企业而言,选择交易频繁的客户作为合作伙伴通常比选择交易量大的客户更容易成功,风险也更小。
G. 如何在arm上进行深度学习算法开发
AlphaGo依靠精确的专家评估系统(value network):专家系统是一个智能计算机程序系统,其内部含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识和解决问题的方法来处理该领域问题。
基于海量数据的深度神经网络(policy network):多层的好处是可以用较少的参数表示复杂的函数。在监督学习中,以前的多层神经网络的问题是容易陷入局部极值点。如果训练样本足够充分覆盖未来的样本,那么学到的多层权重可以很好的用来预测新的测试样本。但是很多任务难以得到足够多的标记样本,在这种情况下,简单的模型,比如线性回归或者决策树往往能得到比多层神经网络更好的结果。非监督学习中,以往没有有效的方法构造多层网络。多层神经网络的顶层是底层特征的高级表示,比如底层是像素点,上一层的结点可能表示横线,三角; 而顶层可能有一个结点表示人脸。
传统的人工智能方法蒙特卡洛树搜索的组合:是一种人工智能问题中做出最优决策的方法,一般是在组合博弈中的行动(move)规划形式。它结合了随机模拟的一般性和树搜索的准确性。