前回の「環境構築編」では、深層強化学習と Isaac Gym の解説および環境構築を行いました。 本稿の「活用編」では、Isaac Gym での学習の実行方法について必要な知識等を解説していきます。
Isaac Gym と呼ばれる深層強化学習向けの物理シミュレーション環境について解説します。 Isaac Gym はまだ開発段階で使用ユーザーもあまりおらず、本技術に関する記事が非常に少ないので技術記事を執筆してみる事にしました。 今回は、深層強化学習と Isaac …
WebAssembly (以下、Wasm) について、最近 Kubernetes でコンテナの代わりに Wasm アプリケーション を扱えるような記述を見かけるに至り、にわかに関心が出てきたので Wasm の仕様について調べてみることにしました。
静的コード解析ツールの1つである Inferを使ってLinuxカーネルのソースコードを解析し、メモリ関連の不具合を検出してみます。Infer のビルドから、解析の実行と検証、解析結果の精査についてまとめました。
前回記事 「ディスアグリゲーデッドコンピューティング」とは何か? (3) の執筆時点で参考にしたYouTubeコンテンツの一覧をまとめました。
BlueField-2 DPU を使って、サーバに RNIC (ConnectX) を搭載し、あるタスクを VM 上で行う従来構成と、VM は起動せずにタスクを DPU 上で行う構成とで性能を比較し、DPU があると何が嬉しいのかを考察しました。
webhook を使わずに Kubernetes の validation (検証) を実現する Validating Admission Policy について、Kubernetes の リリースノートで目にしたことがある程度で実際に使ったことがなかったので、この機会に触ってみました。
前回記事「Qemuのしくみ (の一部)」の内容が重かったので、今回はQemuの小ネタを集めてみました。
2023年4月18~21日に開催された KubeCon + CloudNativeCon EU 2023 に Virtual 参加し、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてまとめました。
BlueField-2というDPUの開発環境を作るために、オークションサイトでいろんなアイテムを購入して動かしてみました。
DPDKのソースコードを読み解くことで、「カーネルのEthernetドライバの代わりにユーザ空間でEthernetドライバを作っている、とあるが実際のPCIデバイスにどうやってユーザ空間からアクセスしているのだろうか?」という疑問を(部分的ながら)解決します。
OSS の開発支援や障害解析サービスなどの仕事柄、Qemu の仕組みや内部動作をお客様に説明する必要がある場合があります。そんな時に「Qemuの〜についてはここを見てね」と言えるような文書があるといいなぁと思い、自分で作ってみることにしました。
2022年10月24日から開催された KubeCon + CloudNativeCon NA 2022 について、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。
ARMv8-A アーキテクチャでの 64bit 環境 (AArch64) でのブートプログラム作成についてまとめます。 今回のブート処理では AArch64 ステートで実行し例外レベルを EL1 にして特権プログラムの実行の準備までを行います。
OpenStack は IaaS 環境を構築するためのソフトウェア群で、簡単に AWS の様なクラウドサービス環境を作成する事ができます。本記事では OpenStack-Ansible を用いた OpenStack 環境を構築してみます。
前回の概論編では、eBPFがどんなもので、どのように実現されているかを中心に解説し、eBPFの技術要素 (BCC、BCC-Tools、CO-RE) にも触れました。 実装編となる今回は、BCC-Toolsの後継となるlibbpf-toolsよりopensnoopコマンドに着目してソースコードレベル…
近年注目されているeBPFについて、概論編と実装編に分けて解説します。 概論編となる本稿では、eBPFとは何か、eBPFで実現できる事、eBPFの仕組み、eBPFの技術要素 (BCC、BCC-Tools、CO-RE) についてまとめました。
Linux のリアルタイムスケジューリング実装である SCHED_DEADLINE の概要に触れた後、最適化問題 IAP (Incremental Assignment Problem) を核に据えて Unrelated なマルチ・プロセッサモデルでの SRT-optimality を証明した Unr-EDF をベースに、SCHED_DEADL…
2022年5月16日から開催された KubeCon + CloudNativeCon Europe 2022 について、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。
これまで様々なvmlinux特有のELFセクションを見てきました。今回は`__ex_table`セクションを取り上げ、実際のコードがどうなっているのか、という方向からこのexception tableを見ていきます。
OAuth 2.1 について、今あるシステムやこれから作るシステムをグッド・プラクティスに沿った形にするために、OAuth 2.1 のドラフトの内容を把握してプラクティスを学んでみます。
前回記事では、vmlinuxのinitセグメントに含まれる、`.percpu`、`.init.text`、`.init.data`などのセグメントについて調べました。今回はその続きで、そのinitセグメントに含まれている`.parainstructions`、`.altinstructions`、`.altinstr_replacement`の…
前編では、NAPI とそれに関連するソフトウェア割り込みの仕組みについて解説しました。 本稿では、前回の最後に触れた通り、Linux kernel に組み込まれている、NIC をソフトウェア割り込み以外で polling するための仕組みである、Busy Poll Socket と kthre…
1年半前に投稿した「vmlinuxのヒミツ」(https://valinux.hatenablog.com/entry/20200910) の第2弾です。 今回は、コード例もなく、単にLinuxという巨象の枝葉末節をああでもないこうでもないと闇雲に撫で回してみました。
Linux におけるネットワーク受信処理で利用されている、NAPI (New API) と呼ばれる仕組みについて、実装レベルで解説します。
2021年10月11日から開催された KubeCon + CloudNativeCon NA 2021 について、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。
自動で分散トレーシングができるライブラリ OpenTelemetry Instrumentation for Java のソースコードを読み解いて調査を行ってみました。
FPGAボードUltra96-V2を入手したのでPythonでFPGAが扱えるというPYNQ環境を試してみました。第1回目ではUltra96-V2にPYNQ環境を構築し使える状態となりました。今回は、ボード上のLEDの点灯制御を行うオーバーレイを作ってみたいと思います。
「RISC-V用の小さなOSを実装してみよう」の連載記事第6回目となります。 前回は、指定時間だけタスクをスケジューリング対象から外す「タスクの時限待ち機能」を実現してみました。 今回は、タスクを協調動作させるための仕組みとして、セマフォによる同期機…
FPGAボードUltra96-V2を入手したのでPythonでFPGAが扱えるというPYNQ環境を試してみました。第1回目はUltra96-V2にPYNQ環境を構築する導入編です。