拓冰建站拓冰建站
首页 / 资讯中心 / 正文

这款编译器能让Python和C++一样快:最高提速百倍,MIT出品

机器之心报道机器之心编辑部甚至比 C 的速度还快现在已在 上可用。自从深度学习开始兴起以后, 它始终都是最为热门的编程语言当中的一种, 它在数据科学这个领域占据主导的位置, 同时也成为了机器学习领域里起着关键作用的存在, 甚至于在科学以及数学计算的诸多领域也都是极为突出的角色。现如今, 你所能想象得到的任何一个项目, 差不多都能够寻找到一个与之相对应的包。然而, 高级语言的简化语法, 让其易于学习, 易于使用, 可是, 和C或C.相比, 它的速度更缓慢这是事实。麻省理工学院计算机科学与人工智能实验室, 也就是 CSAIL 的研究人员, 期望借助 Codon 去转变这一状况, Codon 属于一种基于 的编译器, 它能让用户编写那种能像 C 或 C 程序一样高效运行的 代码, 与此同时, 它还能够进行定制并且适应不同的需求以及环境。和高级领域特定语言的, 名为一种密码子Codon的该事物, 其研究的最新论文以《Codon: A for High- and DSLs》这般称呼登载了, 在2月份开会举行的为第32届, 且有ACM参与的国际会议之上, 此会议主题是编译器构建。对于从事开发工作的人而言, 其必须借助编译器把源代码转化成能够被计算机处理器执行的机器代码, Codon 有能力协助开发者于其中打造全新的领域特定语言DSL, 并且还依旧能够获取其他语言所具备的性能优势。「常规的情况, 会被编译成为那所谓的字节码, 这个字节码在虚拟机里执行, 如此就会致使速度慢出许多, 」Codon论文的主要作者Ariya表明, 「凭借Codon, 我们开展本地编译, 所以你能够直接在CPU上运行最终得出的结果 —— 不经过中间的虚拟机或者解释器。」。Codon的编译管道涵盖类型检查, 借此它能够以更高效率运行代码。基于某事物的编译器带有针对Linux和macOS的预构建二进制文件, 这种编译器你还能够从源代码进行构建以生成可执行文件, 有人提及“使用Codon, 你能够如同处理某件事般分发源代码, 或者你能够把它编译成二进制文件”, 还说道“要是你打算分发一个二进制文件, 它会与像是C这样的语言类似, 像是一个针对Linux的二进制文件或者一个针对Mac的二进制文件这种形态”。在关于力图使Codon更为快速的情况下, 研究人员作出决定要于编译之际开展类型检查, 类型检查关联着把数据类型比如整数、字符串、字符或者浮点数之类分配给值, 就像数字5能够被分配成整数, 字母c能够被分配成字符, 单词hello能够被分配成字符串, 十进制数3.14能够被分配成浮点数。他接着介绍说, 那些类型在常规情况下都已经给了, 使用Codon时, 我们在编译进程里都进行了类型检查, 这避免了我们需要在那个阶段去做所有昂贵的类型操作。麻省理工学院计算机科学与人工智能实验室首席研究员萨曼补充讲道, 要是你拥有一种动态语言, 好比说, 每当你存在一些数据之际, 针对这些数据你都得在其周遭留存诸多额外的元数据, 目的在于去判定数据的类型。而科顿取消了这种元数据, 所以代码运行速度更快, 并且数据量更小。按照某种说法来讲, Codon 在运行时候不存在任何并非必要的数据或者类型检查, 因而开销是零。在性能这一方面, “Codon 一般和 C 处于同等水平。跟某事物相比, 我们通常所见到的是速度有着 10 到 100 倍的改进。”。从另外一个方面来讲, Codon的方法存在着相应的权衡之处。“我们开展这样的静态类型检查, 且不许可运用某些动态特性, 像在动态状态下更改类型, ”如此表示。“有另外一些库, 我们迄今为止尚未予以实现”, 补充表明, “历经了无数人员的实际检验, 然而Codon尚未抵达那般的水准, 它得运转更多的程序, 获取更多的反馈, 并且强化更多方面。达成常规的稳定水平, 尚需些许时间。”。Codon 一开始被设计用来做那些基因组学以及生物信息学方面的工作。研究人员去尝试了大概 10 个用编写方式呈现的常用基因组学应用程序, 并且运用 Codon 对它们进行了编译。最终与最早时候手动优化实现的情况比较, 实现了 5 到 10 倍的加速效果。说道, 如今在这些领域当中, 数据集已然变得极为庞大, 然而诸如某些特定语言以及R这样的相对高级的语言, 它们的速度太过迟缓, 以至于没有办法去处理每一组测序达到TB级别的数据量。这便是我们所想填补的空白, 即借助构建一种处理大数据的方法, 具体此种方法不需要编写C或者C代码, 进而能够为并非计算机科学领域或者专业开发者的那些领域专家给予帮助。上述图表, 在几个基准之上展开了比较, 比较的对象有3、PyPy、Codon以及C这几者的性能, y轴展示出, Codon的实现相对于 实现所达成的加速, MIT , // , OF , / , ACM。除了基因组学, Codon 还能够应用于处理海量数据集的相似应用程序, 以及源于编译器支持的 GPU 编程和并行编程等范畴。实际上, Codon 当前正借由初创公司在生物信息学、深度学习以及量化金融领域开展商业应用, 该公司由创立, 目的在于把 Codon 从学术项目转化为行业应用。为了让Codon能适配不同领域, 该团队研发了一个插件系统 , “它好似一个能扩展的编译器” , 如此说道 , “你能够针对基因组学或者其他领域去编写插件 , 这些插件会有新的库以及新的编译器优化”。此外, 公司能够借助 Codon 制作原型, 机构也能够运用 Codon 开发自有的应用程序。“我们所见到的一种模式是这样的: 人们运用它开展原型设计以及测试工作, 原因在于它使用起来较为简便, 然而一旦涉及某些关键事项, 他们就必须重新编写应用程序, 或者让其他人采用 C 或 C 在规模更大的数据集中进行重新编写以及测试, ”有人如此表示。“借助 Codon, 你能够全程使用它, 进而获得兼顾双方优势的良好效果。”。针对 Codon 的未来, 其团队当下正致力于研究被广泛运用的库的本地实现, 以及针对该库的专门优化, 目的是助力人们从这些库中获取更优性能。他们另外还打算去创建一项备受大众欢迎的功能, 也就是 Codon 的后端, 以此来支持在网络浏览器上运行代码。参考内容
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门