小编And*_*erg的帖子

如何将 ArrayBuffer 从 JS 传递到 AssemblyScript/Wasm?

我有一段非常简单的 Typescript 代码,可以解析特定的数据格式,输入是 UInt8Array。我已经尽可能地优化它,但我认为这个相当简单的解析器应该能够比我让它作为 JS 运行得更快。我想尝试使用 AssemblyScript 在 web 程序集中编写它,以确保我没有遇到任何 Javascript 引擎的怪癖。

正如我现在发现的,我不能只是将 TypedArray 传递给 Wasm 并让它自动工作。据我所知,我可以传递一个指向数组的指针,并且应该能够直接从 Wasm 访问它而无需复制数组。但是我不能让它与 AssemblyScript 一起工作。

以下是一个最小示例,显示了我如何无法将 ArrayBuffer 传递给 Wasm。

设置 Wasm 导出的代码主要来自自动生成的样板:

const fs = require("fs");
const compiled = new WebAssembly.Module(
  fs.readFileSync(__dirname + "/build/optimized.wasm")
);
const imports = {
  env: {
    abort(msgPtr, filePtr, line, column) {
      throw new Error(`index.ts: abort at [${line}:${column}]`);
    }
  }
};
Object.defineProperty(module, "exports", {
  get: () => new WebAssembly.Instance(compiled, imports).exports
});
Run Code Online (Sandbox Code Playgroud)

下面的代码调用了 WASM,index.js 是上面的胶水代码。

const m = require("./index.js");
const data …
Run Code Online (Sandbox Code Playgroud)

javascript typescript webassembly assemblyscript

7
推荐指数
1
解决办法
2904
查看次数

减少.NET编译为Wasm的占用空间

我正在使用Mono将C#编译为Wasm,以便在浏览器中使用它。运行以下命令会生成一堆DLL,一个wasm文件和一些JS文件。

csc /target:library -out:regex101.dll \
    /noconfig /nostdlib \
    \
    /r:$WASM_SDK/wasm-bcl/wasm/mscorlib.dll \
    /r:$WASM_SDK/wasm-bcl/wasm/System.dll \
    /r:$WASM_SDK/wasm-bcl/wasm/Facades/netstandard.dll \
    /r:$WASM_SDK/framework/WebAssembly.Bindings.dll \
    \
    regex101.cs

mono $WASM_SDK/packager.exe \
    --copy=always --out=./publish \
    regex101.dll
Run Code Online (Sandbox Code Playgroud)

如果将这些生成的js文件包含在网页中,则可以在浏览器中运行已转换的代码。但是,最终的大小(大约23个dlls + JS + Wasm)总共约为15mb,这非常大,我相信这是因为没有运行消除死代码的情况,并且包含了框架的很大一部分。

建议我运行一个链接器(请参阅https://github.com/firasdib/Regex101/issues/156#issuecomment-497281517)以执行无效代码消除,但是作为我的.NET新手,我不知道。不知道该怎么做。

任何帮助将非常感激。

.net c# mono webassembly

6
推荐指数
0
解决办法
208
查看次数

多个 Wasm 模块是否可以相互交互并直接通过函数共享内存?

有没有一种方法来实例2个WASM模块,a并且b这样a甚至可以从功能b,也从访问不同的记忆b?例如,让我们说,a通过调用的实现变得内存mallocb暴露于a。这样,所有有用的内存都来自b. 如果是这样,怎么做?更具体地说,这是否可以在没有额外开销的情况下完成,并且不需要在这些操作之间与 JavaScript 交互(实例化模块和设置导入/导出时的初始化步骤除外)?这种间接和内存访问的性能特征是什么,或者根本没有问题?在这种情况下,我进行微优化。

(我已经阅读了几篇文档,但我找不到明确的答案。我认为在 Wasm 的未来版本中,有标准化动态链接的计划会有所帮助,但我们还没有。)

memory dynamic-linking shared-memory webassembly

6
推荐指数
1
解决办法
1611
查看次数

使用特定格式在Octave中加载文本数据

我有一个我想要存储的数据集,并且能够在Octave中加载

18.0   8   307.0      130.0      3504.      12.0   70  1    "chevrolet chevelle malibu"
15.0   8   350.0      165.0      3693.      11.5   70  1    "buick skylark 320"
18.0   8   318.0      150.0      3436.      11.0   70  1    "plymouth satellite"
16.0   8   304.0      150.0      3433.      12.0   70  1    "amc rebel sst"
17.0   8   302.0      140.0      3449.      10.5   70  1    "ford torino"
15.0   8   429.0      198.0      4341.      10.0   70  1    "ford galaxie 500"
14.0   8   454.0      220.0      4354.       9.0   70  1    "chevrolet impala"
14.0   8   440.0      215.0      4312. …
Run Code Online (Sandbox Code Playgroud)

io matlab text-processing octave

5
推荐指数
2
解决办法
4万
查看次数

如何协调主机 JS 和 Wasm 模块之间的内存访问?

目前,WebAssembly 仅支持少数参数类型,即固定大小的整数和浮点数。这意味着我只能从接受和返回数值的 C/Rust 模块中定义和导出函数。

然而,根据 Mozilla 开发者网络,我可以从主机 Javascript 操作模块的内存:

由 JavaScript 或 WebAssembly 代码创建的内存可以从 JavaScript 和 WebAssembly 访问和更改。

这听起来很有希望——它表明我可以将内存的一部分指定为字节缓冲区,在其中跨越语言障碍来回传送更复杂的数据。我的模块中的函数可以接受并返回指针(它们本身就是i32固定大小的整数),从而在当前约束内工作。

不幸的是,目前尚不清楚我应该如何管理这些内存。如果我需要从 JS 向 Wasm 进程传递数据,我需要直接写入 Memory 对象,但不知道 Memory 中的哪些区域是空闲的。

最安全的策略是什么?我是否应该导出一对malloc-and-free风格的函数,让 JS 能够在调用 Wasm 之前请求内存?或者是否有既定的最佳实践?

javascript memory memory-management webassembly

5
推荐指数
1
解决办法
1652
查看次数

是否可以使用工具将WebAssembly“组装”为x86-64本机代码?

我猜想Wasm二进制文件通常是JIT编译为本机代码,但是如果有Wasm源,是否有工具可以查看实际生成的x86-64机器代码?或以不同的方式询问,是否存在使用Wasm并输出本机代码的工具?

executable compilation x86-64 machine-code webassembly

5
推荐指数
1
解决办法
483
查看次数

使用 Neon 和 Wasm 编写 Node.js 模块之间的技术差异是什么?

我希望使用 Rust 为 node.js 编写一个 npm 模块。经过一些快速研究,我找到了两种方法:

  • Neon:“用于编写安全快速的原生 Node.js 模块的 Rust 绑定”
  • Wasm:“基于堆栈的虚拟机的二进制指令格式。”

使用一种或另一种的技术差异是什么?

rust webassembly

5
推荐指数
1
解决办法
677
查看次数

如何使用 ML.NET 预测多列

我正在尝试创建一个应用程序,它根据用户的生活方式和药物的限制来预测服药的时间。
我的意思是:

我从患者那里得到的信息包括:
• 他/她吃他/她的饭菜的次数和时间
• 他/她什么时候醒来和入睡
• 他/她必须服用多少药片


从药物的限制来看:
• 药物是否应空腹食用
• 药物是否应随餐或不随餐食用
• 患者是否需要在进餐和服药之间休息(尚未显示在下面的屏幕上) )
• 等

示例数据集:https :
//ibb.co/Gvry945

我应该使用什么类型的模型/力学/算法来预测服药时间?回归是正确的吗?我需要预测 1,2,3,4 有时是 5 列。

我根据以下内容编写了一个简单的代码:
https
://docs.microsoft.com/pl-pl/dotnet/machine-learning/tutorials/predict-prices 如何使用回归任务使用 ML.NET 预测多个标签?

它工作正常,我可以预测超过 1 列。但是,我的问题仍然是空白单元格。当我试图从该数据中预测某些内容时,它总是显示错误的值,并且只有在所有单元格都完成后才能正常工作。

那么,我应该将我的数据集分散到更少的数据集(所有单元格都完整)吗?例如:
https :
//ibb.co/m8HVPvb 当我只预测 TimeToTakeMedicine1


https://ibb.co/qNk9xQL
当我预测 TimeToTakeMedicine1 和 TimeToTakeMedicine2 时


https://ibb.co/GnRc1c0
当我预测 TimeToTakeMedicine1、TimeToTakeMedicine2、TimeToTakeMedicine3 等时。

有没有更简单更好的方法来解决这个问题?

预测 TimeToTakeMedicine1、TimeToTakeMedicine2、TimeToTakeMedicine3 的工作代码(为了简单起见,我去掉了 OnEmptyStomach、WithMeal 和 IsPossible)

using System;
using System.IO;
using Microsoft.ML;
using Microsoft.ML.Trainers;

namespace NextTry
{
    class Program
    {
        static readonly string _trainDataPath = Path.Combine(Environment.CurrentDirectory, …
Run Code Online (Sandbox Code Playgroud)

c# machine-learning ml.net

5
推荐指数
1
解决办法
1440
查看次数

如果使用 C 语言编写 WebAssembly 是否比 Python 运行得更快?

有很多语言可以编译成 Wasm。使用 C 或 Rust 等语言编写比 Python 有性能提升吗?或者因为它被编译为 Wasm ,所以一切都一样吗?

c python webassembly

5
推荐指数
1
解决办法
3371
查看次数

ML 的二维平面图(图像)数据集

我正在寻找二维平面图数据集进行注释,但找不到大数据集。我已经找到了站点二维平面图数据集,但这里没有很多数据集。如果找到大约 500 个 2d 地板图像(.jpg)数据集就好了

annotations

4
推荐指数
1
解决办法
5377
查看次数