タグ

wasmに関するsh19910711のブックマーク (94)

  • Web ブラウザ上で Wasmを使ってOpen Policy Agent (OPA) を実行 - Qiita

    はじめに 汎用ポリシーエンジンである Open Policy Agent では、WebAssembly 形式でポリシーを配布可能です。記事では、WebAssembly 形式で出力された Open Policy Agent のポリシーを Web ブラウザで評価することを試してみた内容を紹介します。 Open Policy Agent とは Open Policy Agent (OPA) は OSS の軽量で汎用的なポリシーエンジンです。開発時や運用時におけるルール(ポリシー)を事前に定義することで、ポリシーに反する情報を検出できます。OPA はポリシーを定義するための宣言型言語 Rego と、ポリシー評価のためのシンプルな API を提供しています。 WebAssembly とは WebAssembly とは、 Web ブラウザ上で実行可能なバイナリコードの仕様です。C/C++, Rust

    Web ブラウザ上で Wasmを使ってOpen Policy Agent (OPA) を実行 - Qiita
    sh19910711
    sh19910711 2024/05/08
    "OPA; Open Policy Agent: 開発時や運用時におけるルールを事前に定義 + ポリシーを WebAssembly 形式で出力する機能があり + さまざまなプラットフォーム上で OPA のポリシーを評価できる" 2021
  • Proxy-Wasm: エッジでのWasm研究開発最先端

    @ Infra Study Meetup #8 「インフラと研究開発」 https://forkwell.connpass.com/event/193256/

    Proxy-Wasm: エッジでのWasm研究開発最先端
    sh19910711
    sh19910711 2024/05/06
    "Wasm = ブラウザと言う時代は終わり + VMとして優秀&コンパイラ基盤->ブラウザの外でも使いたい / Proxy-Wasm: WasmのVMをEnvoyの中で動かしてWasmのプログラムで拡張 + Envoy/Wasm VM間のABIだけ決めれば任意の言語で拡張できる" 2020
  • moonbit で json パーサーを書いてみた 感想

    エアプにならないために、実際に moonbit を使ってコードを書いてみた感想を書く。 JSON Parser を書いた パッケージレジストリである https://mooncakes.io を見た限り、使いやすい json parser がなさそうなので、とりあえず自分用のをでっち上げた。 mooncakes.io に publish してあるので、 moon add mizchi/json で使える。品質が良くなくても ネームスペース付きで publish するので別に邪魔にならない気がした。 なんで作ったかというと、公式 example の cloudflare workers の example は単純なフィボナッチを計算するだけで、構造的なデータを返すことができない。 moonbit と js 間の文字列の受け渡しについては、あとで別の記事を書く。 使い方 fn main { l

    moonbit で json パーサーを書いてみた 感想
    sh19910711
    sh19910711 2024/04/21
    "Moonbit: TypeScript を Rust の文法で書いてる感覚 + moon test が十分使いやすい / Copliot: usage.mbt として vscode にピン留め + copilot は補完に開いているファイルをみる + Rust との差分を教えている"
  • LiLM 小規模言語モデル TinyLlama 1.1B の日本語追加事前学習(incremental pretrain) を試したメモ

    背景 日語性能のよい軽量 LLM, LiLM, Lightweight Language Model ほしい... スマホで動かしたり, ブラウザで動かしたり... ドメインは知識応答系. Code 生成とか数学とかのドメインは今は考えない. Chinese LLaMa https://zenn.dev/syoyo/scraps/6c3e92402e6fd0 でいい感じに incremental pretrain(追加事前学習) するといけるっぽいことがわかった! ん-, でも 7B or 14 B 規模で試して当にうまくいくのかわからん... (後日 たぶん似たような方法で rinna ちゃんが Youri 7B, ELYZA ちゃんが Japanese LLaMa 7B 出してきた! それなりにいい感じになったようだよ) あと 7B だとやっぱりまだちょっと大きい. 量子化してギリ

    LiLM 小規模言語モデル TinyLlama 1.1B の日本語追加事前学習(incremental pretrain) を試したメモ
    sh19910711
    sh19910711 2024/04/20
    "追加事前学習: CPU mem は 160 GB くらい + 192 GB or 256 GB あると安心 + 学習は 225 W に powerlimit した 3090 x 2 でおよそ 100 日 / WASM でブラウザ動作デモできるようにやっぱりどこかの時点で公開するかも" 2023
  • Pyodideは今どれくらいできるのか - Qiita

    Pyodide Pyodideは、CPythonWebAssembly/Emscriptenに移植したものです。ブラウザ向けのPythonランタイムとも言えます。 2019年にMozillaが発表し、2021年に独立したプロジェクトになりました。 発音 https://github.com/pyodide/pyodide/discussions/1954 https://www.youtube.com/watch?v=iUqVgykaF-k 以上を参考にカタカナにすると「パイアダイド」? Pyodideを使う目的 RustGoなどソースコードをコンパイルしてWebAssemblyバイナリを生成するものは高いパフォーマンスが期待できます。 一方でPyodideはコンパイルをせず実行環境をWebAssemblyに持ってきている方式なので、パフォーマンス面の恩恵は大きくないと思われます。Py

    Pyodideは今どれくらいできるのか - Qiita
    sh19910711
    sh19910711 2024/04/03
    "Pyodide: ブラウザ向けのPythonランタイム + CPythonをWebAssembly/Emscriptenに移植したもの / pandas, numpy, scikit-learnのパッケージはmicropip.install()で追加でき / Pyodideでビルドされたwheelか、pure Pythonで書かれたwheelしか読み込めません"
  • BigQuery Emulator をアップデートしました - Route54

    BigQuery Emulator の v0.6.0 をリリースしました。 今回のリリースでは、Recidiviz社 の @ohaibbq さんが多大な貢献をしてくださいました。Recidiviz社ではかなり前から BigQuery Emulator を使ってくれているようで、以前から Issue や DM などでそのことを伝えてくれていましたが、@ohaibbq さんが今Qエミュレータの改善にコミットできるということで、 Recidiviz社側で fork して使っていたものに加えていた patch をたくさん送ってくれました。 かなり多くの改善が入っているので、以前エミュレータを試して動かなかったクエリを再度試す良い機会かなと思っています。 @ohaibbq さんからは、嬉しいことに今後も貢献してくださると言っていただけているので、今後の改善も速いペースで進んでいくと思います。素晴らし

    BigQuery Emulator をアップデートしました - Route54
    sh19910711
    sh19910711 2024/03/12
    "BigQuery: Google はエミュレータの開発に4年前くらいにやる気は見せていますが、その後何もアクションをとっていません / go-zetasql の cgo 依存をやめて、WebAssembly ベースのバインディングに移行しようとしています"
  • [WASM] CheerpJ 3.0を使ってブラウザでJavaアプリを動かす [アプレット] | DevelopersIO

    Introduction つい先日、CheerpjJ 3.0というブラウザでJavaアプリを実行可能にする コンパイラ/ランタイムがリリースされました。 これを使えば古のアプレットやSwingで作ったJavaアプリケーションが 最新ブラウザでpluginなしで動きます。 また、ライブラリ用のjarファイルもそのまま動かすことができるので、 稿ではJavaライブラリをブラウザ上で使ってみます。 CheerpjJ 3.0? こことかで紹介されてますが、CheerpjJ 3.0について簡単に解説します。 CheerpJ 3.0は、Leaning Technologiesによって開発された、 ブラウザで動作するWASMベースのJavaランタイムです。 JavaバイトコードをJavascriptにJIT compileして実行できます。 何かを追加でインストールしたりする必要はありません。 現在は

    [WASM] CheerpJ 3.0を使ってブラウザでJavaアプリを動かす [アプレット] | DevelopersIO
    sh19910711
    sh19910711 2024/02/09
    便利そう👀 / "CheerpjJ 3.0: ブラウザで動作するWASMベースのJavaランタイム / 昔のJavaコードがそのままブラウザで動く / Java8が動くので昔つくったアプレットも動く / ライブラリ用のjarファイルもそのまま動かすことができる"
  • ヒューリスティックコンテストでビジュアライザを開発する方法に関するメモ - yunix_kyopro’s blog

    はじめに AtCoderなどの競技プログラミングのコンテストに参加しているyunixです。 来年に開催されるマスターズ選手権、楽しみですね。マスターズ選手権は28歳以上の2~3人の団体戦で、時間が6時間のヒューリスティックコンテストになるそうです。 このコンテストの大きな特徴の一つはビジュアライザが提供されないことが明言されていることです。 ヒューリスティックコンテストではビジュアライザを使用して考察することがとても大事なステップになります。 従って、参加者自身でビジュアライザを開発することになると思うのですが、ビジュアライザの開発の準備をしていなければ 開発に時間がかかってしまう 使用感や機能がいまいち などの点で辛い戦いになってしまいそうです。 そこで、 いつものAHCと同じような使用感でビジュアライザを使える コンテストの問題に合わせて最低限のところだけを編集すれば使えるようになる

    ヒューリスティックコンテストでビジュアライザを開発する方法に関するメモ - yunix_kyopro’s blog
    sh19910711
    sh19910711 2024/01/23
    "ヒューリスティックコンテストではビジュアライザを使用して考察することがとても大事 / ビジュアライザ筋トレ: ビジュアライザを短期間のコンテストで開発するとなると、相応に準備と練習をしておいた方が良い" / 2023
  • ruby.wasm で await を使う - tmtms のメモ

    最近はずっと ruby.wasm で遊んでます。 2023/5/19 に ruby.wasm 2.0 が出ました。 ruby.wasm 1.0 では await がうまく動かないことがあったけど、2.0 でちゃんと動くようになったんで、記念に前の記事以降にやったこと等をまとめてみた。 await ruby.wasm で await を使うには2つ問題がある。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある。 スタックサイズが小さくてすぐに SystemStackError エラーが出てしまう。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある HTML 内で <script type="text/ruby"> で気軽に Ruby スクリプトを書いたときに await を使うとエラーになってしまう。(ruby.wasm

    ruby.wasm で await を使う - tmtms のメモ
    sh19910711
    sh19910711 2023/07/21
    "ruby.wasm 1.0 では await がうまく動かないことがあったけど、2.0 でちゃんと動くように / JavaScript の値は Ruby からは JS::Object として見える / 値の型に応じて JS::Object#to_i や JS::Object#to_s みたいにして使うことになる"
  • Cloud Native Wasm Day EU 2023 参加レポート - Qiita

    はじめに 2023年4月の KubeCon + CloudNativeCon Europe 2023 の Co-Located Events として開催された Cloud Native Wasm Day の参加レポートです。Wasm Day は Cloud Native エコシステム全体で注目度が高まっている WebAssembly にフォーカスしたイベントとなっています。 Welcome + Opening Remarks - Kelsey Hightower, Google Kubernetes をはじめとした Cloud Native コミュニティで著名な Kelsey Hightower さんによるオープニングです。オープニングの冒頭に「Wasm は新しいユニバーサルコンピューターを構築できると思いますか?」と参加者に質問していたのが印象的でした。Kelsey さんは Wasm

    Cloud Native Wasm Day EU 2023 参加レポート - Qiita
    sh19910711
    sh19910711 2023/06/17
    "Docker Desktop 4.15 から Docker+Wasm の機能がベータ版として含まれている / asm.js: 2015年の設計時点で既にユースケースとしてサーバーサイドでの実行が挙げられていた / SQLite を Wasm として動かす際に得た教訓を紹介する LT"
  • RustでWasm Runtimeを実装してみた

    はじめに 最近Wasmの勢いがすごくて、ブラウザでPostgreSQLを動かせたり、DockerWasmを動かせたりできます。 以前からWasm自体に興味があって、動作原理を知りたいと思ってchibiwasmというRuntimeを実装してみました。 Rustを選んだのは、最近Rustを勉強していてそれに慣れるためです。 苦労しましたが、*.wasmがどのようにして実行されるのかを理解できたので良かったです。 今回はWasmのバージョン1の仕様を満たすように実装して、テストスイートは正常系と実行時異常系のテストは通しましたが、バリデーションなどのテストはスキップしています。 また、少しだけバージョン2の命令とWASIを実装していて、RustからビルドしたHello Worldを標準出力するwasmバイナリも動きます。 記事は実装したWasm Runtimeの概要と、実装を通して学んだこと

    RustでWasm Runtimeを実装してみた
    sh19910711
    sh19910711 2023/04/26
    "RustでWasm Runtimeを実装してみた / 関数呼出し周りの実装が一番おもしろかった / スタックはこんな感じで管理すればいいんだなや、フレームはこういうときに必要なんだと腑に落ちました"
  • ruby.wasm で MySQL Parameters を作り直した

    プライベートでは基的に誰の役にも立たないプログラムを作ってるんだけど、たまにうっかり MySQL Parameters みたいな役に立つものを作ってしまう。 MySQL Parameters は5年くらい前に Vue.js の勉強のために作ってみたんだけど、結局そのまま Vue.js は触らず放置状態だった。MySQL の新しいバージョンが出るたびにデータは更新してたけど。 ruby.wasmRubyWebAssembly 上で動くようになり、ブラウザ上で JavaScript の代わりに使えるようになったんで、MySQL Parameters を Ruby で作り直してみた。 ruby.wasm ruby.wasm のページに載ってるけど、これだけでブラウザ上で Ruby が動く。簡単。 <html> <script src="https://cdn.jsdelivr.ne

    ruby.wasm で MySQL Parameters を作り直した
    sh19910711
    sh19910711 2023/02/25
    "Promise も JavaScript オブジェクトなので、Ruby から使うことができる / そのままだと then で Ruby の Object#then が呼ばれちゃうので削除 / 処理に時間が掛かる場合にはイルカをくるくる回す"
  • WebAssembly 版 ImageMagick 〜 magick-wasm の紹介 - Qiita

    はじめに サーバでなくブラウザ側で画像処理が動く WebAssembly 版 ImageMagick 〜 magick-wasm の使い方と 2023年初頭での状況報告です。 https://github.com/dlemstra/magick-wasm magick-wasm 体にまだブラックボックス要素があるので、体自体の解説はせず、今回は、実際に magick-wasm を使う事ができた。でも機能的に物足りなく感じた。それだけの解説エントリです。 4月20日に開発者のアナウンスにて、次リリース(恐らく 0.0.20)から wasm を js ファイルに含めないとの宣言がありました。 https://twitter.com/MagickNET/status/1648982963491618817 この記事で説明した手順では動かせなくなるかもしれません。少なくとも index.mjs

    WebAssembly 版 ImageMagick 〜 magick-wasm の紹介 - Qiita
    sh19910711
    sh19910711 2023/01/20
    "magick-wasm: 入出力できる画像形式は充実している一方、画像処理の対応は控えめ + API はほぼ Magick++ / WebAssembly 版 ImageMagick はずっと前から色んな人が公開しているのですが、いずれもメンテナンスが止まってます"
  • 「The Art of WebAssembly」を読んだ - dackdive's blog

    The Art of WebAssembly: Build Secure, Portable, High-Performance Applications 作者:Battagline, RickNo Starch PressAmazon 読んだので簡単なまとめを。 このについて 前半は WebAssembly の基的なしくみや Node.js・ブラウザで動かす方法、後半はパフォーマンス測定やデバッグ方法について学べる。 また、特定の言語やツールチェイン(たとえば Rust だったら wasm-pack とか)に依存した内容ではなく、WAT と呼ばれる WebAssembly のテキスト表現を書きながら実装する。 構成 ざっくり Chapter ごとにやってることを書く。 Chapter 1: Introduction to WebAssembly WebAssemblyとは何か、その

    「The Art of WebAssembly」を読んだ - dackdive's blog
    sh19910711
    sh19910711 2022/11/10
    2021 / "前半は WebAssembly の基本的なしくみ + 後半はパフォーマンス測定やデバッグ方法について / 特定の言語やツールチェインに依存した内容ではなく、WAT と呼ばれる WebAssembly のテキスト表現を書きながら実装"
  • Postgres WASMを支える技術

    Intro 10月3日にWebAssemblyを用いてWebブラウザにx86の仮想マシンを構成することで、PostgreSQLをWebブラウザ上で実行可能にした「Postgres WASM」がオープンソースで公開されました。 以前から気になっていたSupabaseが公開していたこと、最初にSnapletという企業がOSSで公開しておりそれをフォークして完成させたこと、色々気になることばかりでしたので自分なりに調べて深掘りしてみました。

    Postgres WASMを支える技術
    sh19910711
    sh19910711 2022/11/09
    "Postgres WASM: Supabaseが公開 + 最初にSnapletという企業がOSSで公開 / ファイルシステムやネットワーク関係で非常に開発が難航していたことがブログからも読み取れ / WebAssembly(v86)とBuildroot(i686)があれば何でもできる"
  • Running R and Debian Linux in the Browser Via WASM

    sh19910711
    sh19910711 2022/10/10
    R言語 on wasmにトライしてる人いるっぽい / "georgestagg/webR, an R distribution compiled to WASM that runs completely in the browser. The environment is served from a simple webserver, and requires no installation of R onto a back-end server or onto your own desktop."
  • WebAssemblyとBlazor: 何十年の問題を解決する

    Silverlightは気づいていないが、2007年はこのプラットフォームにとって厳しい年であった。一見関係なさそうな出来事が2つ起こり、最終的には終焉に向かうことになった。1つ目は、Web Hypertext Application Technology Working Group (WHATWG)とWorld Wide Web Consortium (W3C)の共同作業が始まり、HTML5仕様の最初のドラフトが2008年に公開された。 2つ目が2007年6月29日に、AppleiPhoneをリリースした。 時折、革新的な製品が登場し、それがすべてを変えることがある。  Steve Jobs レースは始まった。携帯電話はほぼ一晩で連絡先リスト付きの折りたたみ式電話から、ゲームや組み込みWebブラウザーを持つポータブルコンピューターに進化した。短期的にはSilverlightの未来は有望

    WebAssemblyとBlazor: 何十年の問題を解決する
    sh19910711
    sh19910711 2022/08/13
    2019 / "どこでも実行できる.NETの夢は2006年に「Windows Presentation Foundation/Everywhere (WPF/E)」というコードネームのフレームワークで、Silverlightとして公開 / 一見関係なさそうな出来事が2つ起こり、最終的には終焉に向かう"
  • C言語へのFFIを含むRustをWASM化するのは難しすぎる

    つらみ PlantUMLをwasm化するためにGraphvizへの依存をどうしたものか考えていました。すべてRustで書き直せればそれがいちばん手堅いのですが、Graphvizのソースコードは中々に大きく、それをRustで書き直すのは現実的ではありません。そこで考えたのが、RustからFFIでGrapvizのC++コードを呼ぶようにして、それをwasm化すればいいじゃないかというアイデアです。 こんなことを言いましたがツラい・・・この道はツラいです。もう諦めようと思っています。私の力では限界を感じました。 というわけで、やり散らかしたままにしておいても時間の無駄になるので何らか学びを得るためにまとめてみようと思います。 RustでCのライブラリにFFIするのは簡単だ RustはそもそもFFIの機構を持っている Rustはにはexternキーワードがあり、以下のようにC言語の関数をRust

    C言語へのFFIを含むRustをWASM化するのは難しすぎる
    sh19910711
    sh19910711 2022/07/17
    "C言語へのFFIを含むRustをWASM化するのは難しすぎる / 2つのことはそれぞれ簡単なのに組み合わさるととても難しくなってしまうのは何故なのでしょうか / 我々はその謎を解き明かすべくアマゾンの奥地へと足を踏み入れ"
  • WebAssembly text format で画像処理を書くぞ

    Hands on PhotoBlog App with WordPress REST API and App Inventor

    WebAssembly text format で画像処理を書くぞ
    sh19910711
    sh19910711 2022/03/13
     2018 / "直接扱えるデータは64bitまでの数値だけ / ADD, SUB, MUL, DIVとbit演算で頑張る"
  • 【WASM】Cコンパイラをブラウザ上で動かす

    自作のCコンパイラはx86-64用となっていて、ELF64バイナリを出力する。 x86-64上で実行できるコードを出力できれば自宅のパソコン上で実行できるし、今後10年くらいはやっていけるだろうという目論見だった。 ところがいろんなプロセッサが出てきたりして、x86が主流で居続けるとはいえないかもという気がしてきた。 またRustで書いたコードをwasmにコンパイルしてブラウザで動かせる、ということを体験した。 ポインタでメモリ操作みたいな低レベルのことができる言語で書いたコードをブラウザで動かせるなんてどうなっているの?と結構驚いた。 てなことでいっちょCコンパイラからwasmを出力できるようにしてみようと考えた。 オンラインデモ WASMのアーキテクチャWASMのアーキテクチャはちょっと前に調べて、特徴的なこととしては: スタックマシンの命令セット(レジスタがない) ローカル変数が使え

    sh19910711
    sh19910711 2022/02/06
    "Cコンパイラからwasmを吐けるようにするだけで、自動的にブラウザ上で動くCコンパイラが手に入った!というお得感がある"