WASM 指令成本

问题描述 投票:0回答:0

我有一个应用程序需要可插入模块来实现从一个字节数组到另一个字节数组的任意函数。一些功能可能是计算密集型的。一个函数的例子可能涉及对许多数字求和——在 Javascript 中,每个数字都需要一个 BigNum……我可以想象一个汇编语言的实现广泛使用 ADC(加进位)。

我发现这篇文章和 2017 年的评论 - 其中大部分似乎与我今天的想法相呼应。我不知道在支持 WASM(或 WASM2)中的进位/溢出标志方面有任何进展。如果我忽略了什么,请纠正我。

我知道 WASM 通常是通过编译高级语言生成的......比如 Rust 或 C......但我设想手动编码 Web-Assemly-Text 来实现我的插件 - 所以我不是特别感兴趣的优化(在编译为 WASM 时)在 LLVM 等中。我想发现一个计算成本的模型来执行每个 WASM 指令......为了指导最有效的 wasm 模块的设计 - 每个模块都将实现一个相对简单但也许计算量大,算法。我知道解释、JIT 和 AOT 编译之间的区别很复杂——而且我知道不同的目标硬件对于每个场景都有不同的特性。尽管如此,我觉得至少估计不同 Web 程序集代码片段之间的相对执行成本将非常有用。例如,i32.add 和 v128.add 可能的相对成本是多少;乘以 2 还是左移 1 更便宜……等等

目前是否有可靠的信息?是否有努力实施基准测试,以期为一系列目标硬件提供有用的执行成本估算?当提供 WASM 代码片段时,是否有任何工具可以为我提供执行成本估算?

assembly profiling webassembly micro-optimization
© www.soinside.com 2019 - 2024. All rights reserved.