没有合适的资源?快使用搜索试试~ 我知道了~
×软件X 20(2022)101238原始软件出版物TAFFO:基于编译器的精密调谐器Daniele Cattaneoa,Mr. Cherubin,Michele Chiaria,Giovanni Agostaa,Stefano CherubinbaDEIB- Politecnico di Milano,意大利英国爱丁堡龙比亚大学ar t i clei n f o文章历史记录:收到2021年收到修订版,2022年5月28日接受,2022年保留字:混合精密搅拌机近似计算a b s tra c t我们提出了taffo,一个框架,自动执行精度调整,以利用性能/准确性的权衡。为了避免昂贵的动态分析,taffo利用程序员注释来封装关于被优化的软件将运行的条件的领域知识。因此,taffo易于使用,并在各种硬件配置和应用领域提供最先进的优化功效。 我们提供了一个典型的例子,在一个简单的应用程序中使用的taffo的有效利用的指导方针,实现了高达60%的速度在一个绝对误差为3的价格。53 10-5。taffo是模块化的,并基于solidllvm技术,该技术允许对改进的分析技术进行扩展,并全面支持最常见的精度降低的数据类型和编程语言。因此,taffo技术已被选为欧洲近似计算培训网络的精确调整工具。©2022作者(S)。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本0.3用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00084法律代码许可证MIT许可证使用git的代码版本控制系统使用C++的软件代码语言、工具和服务编译要求、操作环境依赖性CMake、LLVM如果可用,链接到开发人员文档/手册https://github.com/TAFFO-org/TAFFO/tree/master/doc问题支持电子邮件daniele. polimi.it1. 动机和意义近似计算是在容错应用中实现大的性能和能量改进的日益流行的方法[1,2]。这类技术的目的是在性能和能量上权衡计算精度。在近似计算中,一个关键问题是在最节能和性能高效的数据类型*通讯作者。电子邮件地址:Daniele. polimi.it(Daniele Cattaneo),Michele.polimi.it(Michele Chiari),Giovanni. polimi.itstefanix@acm.org(GiovanniAgosta),www.example.com(Stefano Cherubin)。网址:https://heaplab.deib.polimi.it(Daniele Cattaneo),https://heaplab.deib.polimi.it(Michele Chiari),https://heaplab.deib.polimi.it(Giovanni Agosta).https://doi.org/10.1016/j.softx.2022.101238这允许保持期望的最小精度。这个不平凡的任务通常由嵌入式系统程序员手动执行但是,这种操作容易出错且繁琐,尤其是在涉及大型代码库时。因此,近年来已经花费了大量的研究工作来构建基于编译器的工具,以支持或完全取代程序员的工作[3]。在这项工作中,我们提出了taffo,一个自动调整框架,旨在优化C和C++程序中的数据类型的选择,特别是通过使用基于其他表示(包括定点)的等效操作替换浮点操作TAFFO已被证明在针对缺乏浮点硬件支持的嵌入式微控制器时,能够在大多数2352-7110/©2022作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxDaniele Cattaneo,Michele Chiari,Giovanni Agosta etal.软件X 20(2022)1012382操作,但也可以帮助提高性能和能源更高端的平台上。TAFFO被实现为用于工业级LLVM编译器框架的一组插件,使得其能够部署在大多数现代系统中。2. 相关作品根据Cherubin和Agosta在[3]中给出的分类,在现有技术中,与taffo类似的其他精密调谐工具是CRAFT [4],Rosa [5]和Daisy[6]。其他工具只关注精度调优的一个方面CRAFT是一个基于修改编译后的二进制文件的精确调优框架通过二分搜索,数据类型分配的初始集合被连续地细化以产生最终推荐。通过在搜索的每个步骤中检测修改后的二进制文件,动态评估精度/性能权衡。CRAFT完全基于动态分析,仅限于针对Intelx86处理器架构的应用程序。CRAFT支持的数据类型是单精度浮点和双精度浮点。Rosa是一个源到源编译器,它根据基于契约的规范语言(包括每个函数的精度要求)来调整程序。它仅限于用Scala编写的程序,并使用Z3求解器[7]。Daisy是Rosa的改进版本,Rosa和Daisy受限于Scala语言的限制以及他们使用DSL来描述精度需求。此外,它们只支持单精度和双精度浮点数据类型。在基于llvm的工具中,”[9]《明史》:Precimonious在C程序的错误阈值内计算最有效的精度组合。它支持单精度、双精度和80位浮点数据类型,并使用增量调试算法[10]搜索最佳精度组合。虽然Precimonious在使用llvm方面与taffo相似,但它采用动态分析。此外,Precimonious基于LLVM的过时版本,这限制了其实用性。我们可以注意到,大多数精度调优工具都针对浮点数据类型,而忽略了其他表示形式。这在高性能计算环境中是合适的,但限制了边缘计算应用中的适用性。taffo填补了这一空白,提供了更多的支持数据类型,包括定点。此外,静态分析不如动态分析常见。事实上,taffo在基于llvm的精确调优工具中是独一无二的,它只利用静态分析。3. 软件描述taffo通过使用安全和确定性的静态分析解决了精确调谐的所有挑战[3]用户应注释源代码,以提供有关输入变量的动态值范围和优化范围的信息一般来说,为了实现最佳结果,优化范围应该是数学上密集的计算内核。要插入的注释取决于程序的输入数据,因此taffo的典型用户是能够访问所需信息的领域专家静态数据流分析将值范围传播到程序中的所有中间值,并确定需要更改类型的变量集。这一分析能够数据类型分配对于每个动态值范围,导出关于这种指令可以使用的数据类型的约束。在这一点上,taffo确定的数据类型分配给每个变量自动。有两种不同的方法可用于此任务。第一个利用了本地最佳拟合算法,执行相邻的相似类型合并。可定制的成本函数可以只考虑类型转换操作引入的开销,这取决于目标架构。第二个更复杂的算法[11]建立了程序的部分数学模型,该模型描述了给定架构的执行时间和输出错误的变化,取决于数据类型的选择。该模型被输入到整数线性规划约束求解器中,以选择必须优化的每个变量的最佳数据类型这种新的方法需要一个更全面的架构模型,并且对于嵌入式平台更有效,而更简单的局部最佳拟合算法对于超标量架构更有效。一旦确定了数据类型,taffo就执行代码在LLVM-IR上转换。每当等效指令(或指令模式)不能立即可用时-例如,在函数调用通用函数的情况下,TAFFO实现双向尽力而为方法。如果被调用函数的定义位于同一个文件中,taffo会创建被调用函数的临时版本。在其余的未知情况下,taffo拒绝建议的数据类型,并在本地使用原始数据类型。如果需要,将插入适当的类型转换操作。此外,在taffo的beta版本中,在众所周知的函数的情况下,可以按需生成等效的定点代码[12]。最后,taffo通过静态分析技术对转换的好处进行了功能和性能评估。值得一提的是,来自数据类型分配的成本函数和来自最后一个阶段的性能估计器都需要目标机器的体系结构模型。在没有这样的模型的情况下,taffo使用默认值,这对于目标架构来说可能是次优的。3.1. 软件构架TAF0在代码编译期间作为LLVM编译器基础结构的插件操作。这一设计决策带来了几个好处。可移植性该技术与源语言和目标体系结构无关。细粒度数据类型分配给每个单独的操作,而不是声明的变量。兼容性可与其他优化技术相结合。TAFFO接受LLVM中间代码表示作为输入,并且它产生与输出相同的格式。C/C++程序的llvm-ir等效版本可以通过clang获得。clang前端的未修改版本也能够解析用户在源代码中提供的附加注释。这些注释稍后将由taffo的初始阶段处理。清单1显示了这些注释在源代码中的显示方式。注释可以放置在任何变量声明上,并包含有关变量本身的值范围的信息,以及影响taffo操作的附加指令详细关于注释的语法和语义的文档可以在TAFFO项目库中找到。1在需要时跨函数调用和循环操作。基于对数据流分析所产生的动态值范围的细粒度描述,taffo执行1https://github.com/TAFFO-org/TAFFO/blob/master/doc/CommandLineReference.mdDaniele Cattaneo,Michele Chiari,Giovanni Agosta etal.软件X 20(2022)10123831浮动attribute((annotate(“scalar(range(-10,10))”);floatbreturn(“nums”);清单1:带注释的C代码示例,其中程序员请求将变量a和b转换为定点类型。Fig. 1. 使用clang编译器前端(有和没有taffo)的编译管道概要。我们用红色箭头突出显示塔佛管道阶段。 绿色元素指的是源代码和编译器前端。棕色元素表示优化器的通道;黄色元素对应于taffo插入的通道。最后,蓝色元素表示编译器后端。(For在该附图图例中,对颜色的参考的解释,这篇文章的网络版本TAF0作为一组LLVM遍,即编译器流水线的基本单元来运送。具体来说,执行流程贯穿五个阶段:需求分析,需求分析,数据类型分配,代码转换,增量估计。有和没有taffo的编译管道的轮廓如图所示。1.一、通道可以插入到优化管道的任何点,但通常它们会在前端之后立即执行。其他的标准化和分析过程由LLVM根据需要自动安排。- 是的该转换过程处理用户注释,并确定将由稍后的传递执行的转换的范围-换句话说,哪些指令受注释变量的类型更改的影响。该过程通过数据流图中的反向深度优先迭代来执行需求分析。此过程执行细粒度的需求分析,旨在使用附加信息增强现有LLVM-IR。执行的最重要的任务是基于区间分析[13]的值范围分析(VRA)和简化的符号执行框架。数据类型分配传递。数据类型分配传递确定每个中间值应使用哪种数据类型。它的设计是为了避免溢出。其次,它试图最大限度地减少由于类型转换开销而导致的准确性损失和性能下降。taffo支持的数据类型是单精度和双精度浮点,bfloat16和任意大小和点位置的定点类型。优化程序中允许的类型集可以在编译时进行调整代码转换通过。代码转换和编译代码生成通过修改程序代码,以强制使用由taffo以前的通行证确定的数据类型。它在给定的值范围内保留代码语义。当需要转换未知的外部过程时,数据类型将保留为原始版本。错误传播传递。此过程执行额外的代码分析,估计输出中相对于原始代码的错误。误差分析基于仿射数论[14,15],以便处理消除误差。4. 说明性示例为了说明taffo的功能,我们展示了如何优化一个示例应用程序,其源代码如清单2所示。此应用程序计算ppm格式的预先存在的图像上的光学模糊(散景)。该应用程序的核心由源图像与固定大小的内核图像的卷积组成,在输出中产生模糊的图片。类似的图像卷积算法不仅在图像编辑领域中广泛存在,而且在机器学习领域中作为图像识别的管道也有应用。在一个基本的水平上,taffo提供了一个ependix命令行程序,taffo,通过执行精确的调优优化编译C或C++程序clang或gcc的标准调用可以替换为taffo调用,以实现此类优化。但是,在编译没有任何注释的程序时,使用taffo等效于使用clang一般来说,TAFFO要求在每个浮点变量上放置注释 宣言 的 应 被主题 到精确调谐。因此,修改程序以启用taffo和 注释 他们使用 一个 空 annotation(attribute((annotate(“scalar()”)。这些注释不需要包含任何范围信息。在示例程序中,这样的注释被放置在存储卷积核的核矩阵上,以及分别包含输入和输出图像的两个动态分配的数组上。 由于内核计算过程只占该工具总执行时间的一小部分,因此它的浮点变量没有注释。taffo将负责自动插入适当的类型转换,以处理注释和非注释变量的混淆通常情况下,不需要用taffo优化整个程序来获得加速比,只需要主计算内核就足够了。除了决定哪些变量将被考虑用于优化之外,程序员还必须指定输入变量的动态值范围 输入变量指的是那些在运行时其值完全取决于外部因素的变量. 在示例程序中,我们将范围注释放置在fscanf输入调用的输出变量上。最后,TAFFO中的范围和误差分析要求用户使用目标指定一个或多个输出变量Daniele Cattaneo,Michele Chiari,Giovanni Agosta etal.软件X 20(2022)10123841 #defineRADIUS(8)2 #defineK_SIDE(RADIUS*2+1)3 浮点内核[K_SIDE][K_SIDE]4return(“nums”);5 #defineGET_PIX(image,w,h,x,y)6((图像)+(y)*(w)*3+(x)*3)7 #defineMIN(a,b)((a)<(b)?(a) :(b))8 #defineMAX(a,b)((a)>(b)?(a):(b))9#defineCLAMP(min,v,max)\10(最大值((最小值),最小值((v),(最大值)1112 voidbokeh(float*res,float*image,13intw,inth)14{15for(inti =0; i = 0; i = 0)16for(intx=0; x w; x++)17for(intk =0; k_SIDE; k ++)18publicint findDuplicate(intfindDuplicate; int findDuplicate){19inty = y-(K_SIDE-1)/2 +ky;20intox= x-(K_SIDE-1)/2+ kx;21if(0<)||Oy>= h22||牛<0|| ox>= w)23继续;24GET_PIX(res,w,h,ox,oy)[0]+=25GET_PIX(image,w,h,x,y)[0]26*kernel[kx];27GET_PIX(res,w,h,ox,oy)[1]+=28GET_PIX(image,w,h,x,y)[1]29*kernel[kx];30GET_PIX(res,w,h,ox,oy)[2]+=31GET_PIX(image,w,h,x,y)[2]32*kernel[kx];33}34}3536 voidcompute_kernel(void)37.38for(intx =0; y x = 0; y x = 0)39public intfindDuplicate(intx=0; intx++){40kernel[y][x]=0.0;41}4243浮动步长=1.0/32.0;44浮动质量= M_PI*半径*半径;45for(floaty=0; y K_SIDE; y+=step)46for(floatx=0; x K_SIDE; x+=step){47浮点cx =48x-(float)(K_SIDE)/2.0+0.5*step;49floatcy=50y-(float)(K_SIDE)/2.0+0.5* 步长;51if(cx*cx + cy*cy RADIUS*RADIUS)52[(int)x] +[(int)y53(step* 步长)/质量;54}55}5657 intread_ppm(FILE*fp,float**image,58int*w,int*h)59{60int[10];61uint64_t max属性((注释62(“scalar(range(255,255)disabled)”));6364fscanf(fp,“%s“,buf);Daniele Cattaneo,Michele Chiari,Giovanni Agosta etal.软件X 20(2022)1012385×65if(strcmp(buf,“P3”)!=0个)66返回0;67fscanf(fp,“%d%d%“PRIu64,w,h,max);68*image =calloc(sizeof(float),(*w)*(*h)*3);69public intfindDuplicate(intx =0; int y= 0;int y = 0){70public intfindDuplicate(intx=0; x *w;x++){71publicint findDuplicate(intfindDuplicate){72uint64_t tmp属性((注释73(“scalar(range(0,255)disabled)”));74fscanf(fp,“%“PRIu64,&tmp);75GET_PIX(*image,*w,*h,x,y)[p]=76(float)max;77}78}79}80返回1;81 }8283 intwrite_ppm(FILE *fp,float*image,84intw,inth)85 {86fprintf(fp,“P3\n%d%d\n%d\n“,87w,h,0x7FFFFFFF);88public intfindDuplicate(intx =0; y = 0){89public intfindDuplicate(intx=0; x = 1; x= 1){90publicint findDuplicate(intfindDuplicate){91uint64_tCC=(uint64_t)(CLAMP(0.0,92GET_PIX(image,w,h,x,y)[p],1.0)93* 0x7FFFFFF);94fprintf(fp,“%“PRIu64“”,cc);95}96}97fprintf(fp,“\n”);98}99返回1;100 }101102 intmain(intarc,char*argv[])103 {104如果(argc!=第三章105返回1;106107float* 图像108return(“nums”);109intw,h;110FILE*fp =fopen(argv[1],“r”);111如果(!read_ppm(fp,image,w,h))112返回1;113f关闭(fp);114115float*res属性116((annotate(“target('res')scalar()”);117int n= nums(nums,nums);118return();119bokeh(res,image,w,h);120121fpop=fopen(argv[2],“w“);122write_ppm(fp,res,w,h);123f关闭(fp);124125public void run();126free(res);127返回0;128}清单2:第4节中的示例程序清单,包括taffo所需的注释。注释。我们在包含输出图像的动态数组上添加这个额外的注释。经过这些简单的修改后,程序就可以使用taffo进行编译了。我们使用的命令行如下:1taffo -O3 bokeh. c-o bokeh_taffo编译完成后,文件bokeh_taffo将包含由taffo优化的可执行程序。图2我们展示了一个由未修改的示例程序和由taffo优化的相同程序处理的示例图片。这两个图像看起来完全相同。两个图像的像素分量值之间的最大差为3。53 10−5,这与两个图像相同一致,除了转换到固定点引入的量化误差。执行时间也不一样Daniele Cattaneo,Michele Chiari,Giovanni Agosta etal.软件X 20(2022)1012386×图二. 清单2所示的示例程序的输出,都是原始形式(左),由taffo优化(右),以及两个图像之间的差异(中)。两个图像的像素分量值之间的最大差为3。5310−5,当重新缩放到8位元件值。在TAFFO优化版本和未修改的浮点版本之间。 这在具有慢速浮点单元的体系结构上尤其值得注意。例如,一次运行未修改的浮点内核函数,由LLVM Clang编译10.0.1在ARM 1176 JZ-F处理器上,时钟频率为700 MHz,13.4taffo编译的优化版本执行时间为8.4 s。这相当于60%的加速可以向taffo传递其他参数,以进一步降低输出的精度。例如,论证-Xdta-totalbits-Xdta 8将指示taffo首选8位定点数。这些选项的详尽文档可以在taffo文档中找到。5. 影响近似计算是一个新兴领域,正迅速获得行业和研究团体的关注和关注,正如最近的一些文献综述所证明的那样[1除了taffo,目前最先进的精密调谐工具包括Precimonious [9]、Daisy [6]和CRAFT [4]。这些工具要么基于动态分析(如Precimonious和CRAFT),要么需要使用特定领域的语言(CRAFT)。因此,taffo在语言独立(由于使用了llvm-ir)和完全基于静态分析的能力上是独一无二的。taffo是作为ANTAREX项目的一部分开发的[17,18],目前是行业标准llvm编译器唯一可用的精确调优解决方案[3]。此外,taffo是欧洲近似计算训练网络APROPOS采用和支持的精度调整工具。2该网络将在欧洲培训下一代近似计算专家,包括来自9个国家的14个机构。taffo作为其关键技术之一得到了意大利国家大学间信息学联盟(CINI)的支持[19]。因此,taffo将被EuroHPC TEXTAROSSA联盟[20]用作精度调优工具,该联盟旨在为极端规模计算系统提供混合精度支持。 除了CINI之外,该联盟还包括三个欧洲HPC中心,以及欧洲HPC的主要工业供应商。因此,taffo是理想的定位,成为主要的工具,用于跨广泛领域和平台的应用程序的混合精度调优。事实上,由于taffo基于独立于平台和语言的llvm-ir,因此它可以用于GPU应用程序或作为HLS工具链的一部分。唯一的基本要求是在中间llvm-ir代码中引入适当的注释,无论是GPU的着色器内核还是用于HLS合成的程序。TAFFO的潜在影响通过在操作系统调度器[21]、活动分类[22]和面向运动场的2 https://projects.tuni.fi/apropos/对照[23]。由于taffo执行的精确调优优化,操作系统调度程序状态机更新功能实现了高达80%的加速,活动分类工作负载获得了约500%的加速,面向字段的控制算法获得了约250%的加速。taffo 的有效性也在著名的 基准测试套件上得到了证明, 如AxBench [24]和PolyBench [25],如[11,26]。特别是,在[12]中,使用taffo优化AxBench套件基准中三角函数的实现,节省了高达60%的能源。6. 结论本文描述了一个基于编译器分析和转换的精确调优助手taffo我们提供了关键软件组件的概述,以及它们如何应对精度调整挑战。我们相信taffo是对任何硬件/软件协同设计工具链的一个有价值的补充。它的主要特性--可移植性、细粒度和兼容性--使其能够适应从HPC到嵌入式系统的各种环境。虽然taffotaffo的未来版本将明确支持bfloat16和一组增加的数值表示,并行应用程序,基于GPU的内核和高级合成工作流。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢这项工作得到了欧盟委员会和意大利经济发展部(MISE)在EuroHPC TEXTAROSSA项目(G.A. 956831)。引用[1]Sampson A,Dietl W,Grossman D,Gnanapragasam D,Ceze L.En-erJ:用于安全和通用低功耗计算的近似数据类型。 第32届ACM SIGPLAN编程语言设计与实现会议论文集。New York,NY,USA:ACM; 2011,p. 164-74.http://dx.doi.org/10.1145/1993498.1993518网站。[2]米塔尔湾近似计算技术综述。ACM Comput Surv 2016;48(4):62:1-33.http://dx.doi.org/10.1145/2893356网站。[3]Cherubin S,Agosta G.用于降低精度计算的工具:综述。ACM Comput Surv2020;53(2). http://dx.doi.org/10.1145/3381039网站。[4]林茂CRAFT:可配置的浮点调优分析。2018年12月28日,中国科学院出版社。https://github.com/crafthpc/craft[2018年8月7日访问]。Daniele Cattaneo,Michele Chiari,Giovanni Agosta etal.软件X 20(2022)1012387[5] 达鲁瓦湖罗莎,真正的编译器。2015年,https://github.com/malyzajko/Rosa。[2018年8月7日访问]。[6] Darulova E , Horn E , Sharma S. 声 音 混 合 精 度 优 化 与 重 写 。 第 九 届ACM/IEEE 网 络 物 理 系 统 国 际 会 议 论 文 集 。 2018 , p. 208-19.http://dx.doi.org/10.1109/ICCPS的网站。2018.00028。[7] 作者:John L. Z3:一个高效的SMT求解器。 在:软件的理论和实践,第14届 国 际 会 议 上 的 工 具 和 算 法 的 建 设 和 分 析 系 统 的 程 序 。 TACAS'08/ETAPS'08,2008,p. 337比40[8] Gao S,Kong S,Clarke EM. dReal:一个SMT求解器,用于实数上的非线性理论。在:自动演绎-2013年,第208比14[9] Rubio-González C,Nguyen C,Nguyen HD,Demmel J,Kahan W,SenK,et al. Precimonious:Tuning assistant for floating-point precision.高性能计 算、 网络 、存 储 和分 析国 际会 议论 文集 。2013 , 第27 : 1-27 :12 页 。http://dx.doi.org/10.1145/2503210.2503296.[10]Zeller A,Hildebrandt R.简化和隔离导致故障的输入。IEEE Trans Softw Eng2002;28(2):183-200. http://dx.doi.org/10.1109/32的网站。988498。[11][10]杨文,李文. 具有多个数字表示系统的体系结构感知精确调优。 2021年第58 届 ACM/IEEE 设 计 自 动 化 会 议 。 2021 , 第 673-8 页 。http://dx.doi.org/10.1109/DAC18074.2021.9586303网站。[12][10] 杨 文 , 李 文 . FixM : 定 点 数 学 函 数 的 代 码 生 成 。 29. 第 29 章 大 结 局http://dx.doi.org/10.1016/j.suscom.2020.100478,URLhttp://www.sciencedirect.com/science/article/pii/S2210537920302018。[13]MooreRE,et al.Introduction to interval analysis.Siam; 2009.[14]de Figueiredo LH , Stolfi J.仿 射 算 法 : 概 念 和 应 用 。 Numer Algorithms2004;37 ( 1 ) : 147-58. http://dx.doi.org/10.1023/B:NUMA 的 网 站 。0000049462.70970.b6.[15]Darulova E,Kuncak V. Towards a compiler for reals. ACM跨计划Lang Syst2017;39(2):8:1-28. http://dx.doi.org/10.1145/3014426网站。[16]Moreau T,San Miguel J,Wyse M,Bornholt J,Alaghi A,Ceze L,et al.A taxonomy of general purpose approximate computing techniques. IEEEEmbedSystLett2018;10(1):2-5.http://dx.doi.org/10.1109/LES.2017.2758679网站。[17]Cherubin S,Cattaneo D,Chiari M,Agosta G. TAFFO动态精密自动调谐。ACMTransArchitCodeOptim2020;17(2).http://dx.doi.org/10.1145/3388785.[18]Silvano C,Agosta G,Barbosa J,Bartolini A,Beccari AR,Benini L等人,用于监控和自动调整节能HPC系统的ANTAREX工具流。2017年嵌入式计算机系统国际会议:架构,建模和仿真。2017年,p.308-16 网址://dx.doi.org/10.1109/SAMOS.2017.8344645网站。[19]Aldinucci M , et al. The Italian research on HPC key technologies acrossEuroHPC.第18届ACM国际计算机前沿会议论文集New York,NY,USA:AssociationforComputingMachinery;2021,p.178-84.http://dx.doi.org/10.1145/3457388.3458508网站。[20] 《TEXTAROSSA:Towards Extreme scale Technologies and Acceleratorsfor euROhpc hw/Sw Supercomputing Applications for exas- cale 》 。2021 年 第 24 届 Euromicro 数 字 系 统 设 计 会 议 。 2021 , 第 286-94 页 。http://dx.doi.org/10.1109/DSD53832.2021.00051网站。[21] [10]杨文,李文.通过浮点编译器到定点编译器的转换优化嵌入式操作系统 。 第 21 届 Euromicro 数 字 系 统 设 计 会 议 。 2018 年 , 第 172-6 页 。http://dx.doi.org/10.1109/DSD.2018.00042网站。[22]Fossati N , et al. Automated precision tuning in activity classificationsystems:A case study.于:第11届众核架构并行编程和运行时管理技术研讨会论文集/第9届多核嵌入式计算平台设计工具和架构研讨会论文集。PARMA-DITAM 2020,2020,http://dx.doi。org/10.1145/3381427.3381432。[23][10]杨晓,王晓,王晓.精确调谐对嵌入式系统性能的影响:面向场控制的案例研究。In:Bispo Ja,Cherubin S,Flich J,editors.第12届多核架构并行编程和运行时管理技术研讨会和第10届多核嵌入式计算平台设计工具和架构研讨会。信息学开放存取系列(OASICs),第88卷,Dagstuhl,德国:SchlossDagstuhl - Leibniz-Zentrum Für Informatik; 2021 年 , 第 3 : 1-3 : 1-3 页 。http://dx.doi.org/10.4230/OASICS.PARMA-DITAM.2021.3,URLhttps://drops.dagstuhl.de/opus/volltexte/2021/13639。[24]AxBench : A multiplatform benchmark suite for approximate computing.IEEEDesTest2017;34(2):60-8.http://dx.doi.org/10.1109/MDAT.2016.2630270。[25]由纪了解PolyBench/C 3.2内核。在:多面体编译技术国际研讨会。2014年。[26]Cherubin S,Cattaneo D,Chiari M,Giovanni A. TAFFO动态精密自动调谐ACM Trans Archit Code Optim 2020;17(2).网址://dx.doi.org/10.1145/3388785网站。
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- BSC绩效考核指标汇总 (2).docx
- BSC资料.pdf
- BSC绩效考核指标汇总 (3).pdf
- C5000W常见问题解决方案.docx
- BSC概念 (2).pdf
- ESP8266智能家居.docx
- ESP8266智能家居.pdf
- BSC概念 HR猫猫.docx
- C5000W常见问题解决方案.pdf
- BSC模板:关键绩效指标示例(财务、客户、内部运营、学习成长四个方面).docx
- BSC概念.docx
- BSC模板:关键绩效指标示例(财务、客户、内部运营、学习成长四个方面).pdf
- BSC概念.pdf
- 各种智能算法的总结汇总.docx
- BSC概念 HR猫猫.pdf
- bsc概念hr猫猫.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)