マイクロソフトのWindows Dev Kit 2023(別名Project Volterra):開発者レビュー

マイクロソフトのWindows Dev Kit 2023(別名Project Volterra):開発者レビュー
画像: マイクロソフト

マイクロソフトがついにSurface Pro 9タブレット向けにArmオプション付きのArm Windowsバージョンをリリースしたことで、残る疑問が一つあります。Armアプリケーションは一体どこから来るのでしょうか?マイクロソフトは、Windows Dev Kit 2023(旧称Project Volterra)で、軽量で比較的安価でありながら、強力で柔軟なハードウェアソリューションを生み出しました。

ジャンプ先:

  • Windows Dev Kit 2023は、他のハードウェアでは管理できないArmワークロードを管理します。
  • Surface Pro 9 を Arm 開発に使用できないのはなぜですか?
  • Visual Studio で Arm コードをビルドする
  • ArmはMicrosoft以上の存在
  • LinuxとAndroid用開発キットの使用
  • Microsoft エコシステム外での開発キットの使用

Windows Dev Kit 2023は、他のハードウェアでは管理できないArmワークロードを管理します。

開発キット2023の仕様。
開発キット2023の仕様。

Windows Dev Kit 2023は、Qualcommの8cx Gen 3 Armチップセットを搭載した、比較的低価格なArmベースの開発用PCです。Microsoft Storeで599ドルで購入可能で、これはArmベースの新型Surface Pro 9 5Gの約3分の1の価格です。

回収された海洋プラスチックから部分的に作られた小さな黒いケースに組み込まれた Windows Dev Kit には、次の機能があります。

  • 32GBのメモリと512GBの高速NVMeストレージは、ほとんどの開発者向けラップトップと同様の仕様です。
  • ビデオ出力用のUSB-Cポート2つとミニディスプレイポート接続1つ
  • 最も一般的なデバイスに接続できる3つのUSB-Aポート
  • ギガビットイーサネットポートとWi-Fi 6

追加する必要があるのは画面とキーボードとマウスだけです。

低価格なのでArmだけでなく他の用途にも使える

Windows Dev Kit 2023 の最も魅力的な特徴の 1 つは、その低価格です。ハイエンド開発者用 PC の価格で 3 台または 4 台を購入して、Arm Windows アプリケーションの完全なビルド、テスト、展開環境として 1 人の開発者向けにスタックすることも、より多くの開発者にツールを提供することもできます。

Azure Pipelines のような継続的インテグレーションおよび継続的デプロイメントツールを活用すれば、Arm 開発に限定されることなく、x86 および x64 で作業するためのクラウドビルドツールを利用できるほか、共有 Mac を使用して iOS および macOS のコードをビルドすることもできます。

複数の画面を駆動できるため、Microsoftのクラウドホスト型Dev Boxとの興味深い連携が期待されます。必要な時に追加のパワーを得ることができます。また、Microsoftのリモートデスクトップ機能もサポートされているため、Windows Dev Kitデバイスをヘッドレスモードで起動し、普段使っているPCやノートパソコンからアクセスして、Windows Armアプリケーションのビルドやテストが必要な時にログインできます。

参照: 採用キット: バックエンド開発者 (TechRepublic Premium)

箱から出してすぐにWindows 11 ProとOffice 365が付属しており、既存のMicrosoft 365アカウントですぐにご利用いただけます。基本セットアップ手順のリンクからMicrosoftのウェブサイトにアクセスし、より詳しい情報を得ることができます。また、Microsoftの主要開発ツールのArm版へのリンクや、Qualcommのニューラル・プロセッシング・ユニット(NPU)AIアクセラレータ向けの開発者向けコンテンツやツールへのリンクも提供されています。

Surface Pro 9 を Arm 開発に使用できないのはなぜですか?

Windows 11のArm版Windowsは32ビットと64ビットの両方のIntelプロセッサをエミュレートできますが、エミュレーションには必ず大きなオーバーヘッドが伴います。Surface Pro 9 5Gの8GB版を購入すると、Windowsのジャストインタイムエミュレーション技術によってIntelコードをArmコードに変換し、次回呼び出し時にキャッシュするため、アプリケーションの動作が遅くなったりカクツキが生じたりするリスクがあります。

Microsoftは、開発者がArm向けのネイティブコードを構築できるよう、ツールの提供に取り組んできました。Windows RT向けに開発され、最新のArmプロセッサ向けに最適化されたこのツールにより、Visual StudioやVisual Studio Codeといった使い慣れたツールを使用して、C#やC++といった使い慣れた言語からArmに直接コンパイルできます。

MicrosoftはすべてのWindowsアプリケーションプログラミングインターフェースとソフトウェア開発キットのArm版を提供しているため、新しいことを学ぶ必要はありません。さらに、NuGetには新しいプロセッサアーキテクチャへの移行が既に進んでいる人気ライブラリが多数用意されており、必要な変更がまだ行われていないユーザー向けにアップデートを推進する熱心なArm Windowsコミュニティも存在します。

Arm向けのコードのコンパイルは、MicrosoftのビルドツールでArm64をターゲットにするだけで簡単に実行できるようになりました。AzureのAmpere Alteraインスタンスを使用して、AzureのWindows 11 Arm仮想マシンでコンパイラやテストスイートをホストすることもできますが、多くの開発者はより身近な環境を好みます。また、Surface Pro XやSurface Pro 9をArm開発用PCとして使用することもできますが、薄型軽量で常時接続可能なこれらのモバイルデバイスは、完全な開発ツールチェーンを実行するよりも、コード編集に適しています。

Visual Studio で Arm コードをビルドする

Dev Kit 2023 上の Visual Studio の最新の Arm ネイティブ プレビュー。
Dev Kit 2023 上の Visual Studio の最新の Arm ネイティブ プレビュー。

Microsoftの成功を判断する最良の方法は、おそらくコードをビルドして実行してみることでしょう。.NET 7の現在のビルドはほぼ最終版に近いので、Visual Studioの最新のArmネイティブプレビューを使用して、シンプルなコンソールアプリケーションをビルドしてコンパイルしました。

x64 Intel Xeon-EワークステーションとArmベースの開発キットで作業しても違いはありませんでした。C#プロジェクトを作成して同じファイルをセットアップし、コードをコンパイルすると、両方のマシンで同じ出力が得られました。C++でハードウェアに近い環境で作業した場合も同じ結果が得られ、両方のデバイスで同じ結果が得られ、ネイティブコードも実行されました。

当然のことですが、Windows の Arm API と SDK は Intel ハードウェアと同じである必要があります。Microsoft は、Arm を Windows エコシステムの有効な一部として確立し、開発者がどちらのプラットフォームにも簡単に提供できるようにするためには、この点をきちんと理解する必要があります。Microsoft はすでに自社コードの Arm バージョンを構築しており、かなりの成功を収めています。Windows Dev Kit 2023 の Windows インストールでは、エミュレートされた x64 コードとして実行されるプロセスはわずか数個で、そのうちの 1 つが Office 365 のクリックツー実行インストーラーです。

参照: 新しい Microsoft 365 展開ツールの使い方 (TechRepublic)

ハードウェアAIアクセラレータを試してみたかったのですが、Qualcommの開発者プログラムへのアクセスが必要です。申請から1週間経ちましたが、まだ必要なツールやSDKにアクセスできません。しかし、ONNXポ​​ータブルモデル標準をベースにしているので、Azure Machine Learning Studioなどの使い慣れたツールを使用して、ONNXとしてエクスポート可能なモデルを設計・トレーニングできるはずです。

これらはQualcommのツールを使って最適化され、Microsoftの既存のONNXランタイムライブラリを使ってアプリケーションに追加できます。将来のリリースでは変換プロセスが自動化され、個別のONNXモデルを配布する必要がなくなり、すべてのCPU、GPU、NPUで実行できるONNXモデルを1つ構築するだけで済むようになることを期待しています。

ArmはMicrosoft以上の存在

Windows向けArmツールチェーンの提供に取り組んでいるのはMicrosoftだけではありません。JetBrainsは最近、人気のRider .NET開発環境のArm64版プレビュー版をリリースし、早期アクセスプログラムの一環として提供しています。

Visual Studioの完全な環境は必要なく、統合開発環境のようなものが必要な場合は、RiderがC#開発の便利な代替手段となります。.NET 7にはまだ完全には対応していませんが、ほとんどの用途には十分です。Visual Studioで作成したC#プロジェクトの編集、コンパイル、テストにRiderを使用できました。

ここ数年、Microsoftの開発者サポートは大きく変化しました。.NETの黎明期には、四半期ごとのMSDN CD-ROMでコードとドキュメントを定期的に提供するなど、企業主導のアプローチが主流でした。しかし、オープンプラットフォーム、オープンデザイン、そしてオープンソース開発への移行により、状況は一変しました。Windowsの開発哲学は、開発者のいる場所へ直接足を運ぶことへと変化しました。

LinuxとAndroid用開発キットの使用

開発者の作業方法の変化に伴い、Windows Dev Kit 2023 は純粋な Windows デバイスではなくなりました。Azure は Windows と Linux の両方で動作するため、最新のクラウドネイティブ アプリケーションを構築するには、ツールチェーンに Linux サポートを含める必要があります。

Windows Dev Kit ハードウェア上で Linux をネイティブに実行するために必要なドライバーはまだリリースされていませんが、WSL 2 を介してホストされた Linux カーネルの Windows サポートを引き続き利用できます。WSL Ubuntu リリースでは Arm バージョンがインストールされるため、Windows と Linux の両方でエンドツーエンドの Arm サポートが提供されます。

参照: Linux 101: 技術プロフェッショナルが知っておくべきこと (TechRepublic Premium)

このプラットフォームはLinuxとWindows以外にも多くの機能を備えています。最近リリースされたWindows Subsystem for Androidにより、開発者は完全なアクセス権限を持つローカルAndroid環境を利用できるようになりました。Google Play APIは完全にはサポートされていませんが、Visual Studioで記述したコードをモバイル開発ツールのXamarinやMAUIを使ってテストできます。

残念ながら、GoogleのAndroid StudioのWindows版は今のところ純粋なx64のみなので、エミュレーションでしか動作しません。しかし、MicrosoftのArmハードウェア上でWSAと併用することで、コードのテストとデバッグが容易になります。WSAはホストマシンでAndroidのADB接続を使用してデバッグやコードのサイドローディングを行えるためです。

Microsoft エコシステム外での開発キットの使用

Arm版Windowsへの入り口として、この開発キットに対する他のベンダーの反応を見るのは興味深いでしょう。JetBrainsによるRiderのArm版リリースは、IntelliJなどのツールのArm版で実現されるであろう開発の方向性を示していることは明らかです。

Windowsアプリケーションを構築するためのプラットフォームはMicrosoftのツールだけではありません。GoogleのFlutterのようなテクノロジーにも注目する価値があります。Flutterには、Linaroの開発者からArmサポートを求めるGitHubプルリクエストが既に提出されていますが、コードはまだメインブランチには含まれていません。基盤となるDart言語はベータチャネルで既にWindows on Armをサポートしており、クロスプラットフォームアプリケーション開発の新たな選択肢となります。

Flutterのようなプラットフォームは既にVisual Studio Codeを使用しているため、拡張機能はJavaScriptで構築されておりプラットフォームに依存しないため、Windows Dev Kitへの導入は比較的容易です。これは現代の開発者スタックの他の要素にも当てはまり、Windows Dev Kit 2023はWindows開発だけでなく、幅広い用途に適しています。

Windows Dev Kitは、クロスプラットフォームWindowsを実現するというMicrosoftの計画の中核を成すものです。OSは既に存在し、次はアプリの開発です。開発者向けハードウェアの価格設定を積極的にすることで、Microsoftはコードの移植とテストに費用がかかりすぎるという議論を迅速に払拭しようとしています。これは、ArmとWindowsをデスクトップに導入することで、私たち全員が活用できる解決策です。

Tagged: