「 2011年08月 」一覧

ESXi 5.0を試す

先週に公開されたvSphere Hypervisor ESXi 5.0をダウンロードして、
実験マシンにインストールしてみました。

インストール直後に、”お!”と思ったポイントをあげてみます。

  1. RealtekのNICがデフォルトで認識された!
  2. 画面が広くなった。
    1. 文字しかないコンソール画面なのであまりメリットはないですが。
  3. データストアに”非SSD”なる文字が。
    1. SSDを認識するってことですか、これは。
  4. vSphereClientに表示されるメモリ使用量がなんかアテにならない?

さて、vt-dそなえた環境なのでVMDirectPathをまた試してみました。
Intel HD Graphicsをメインとして、RADEON HD 5450を増設し、
これをパススルーできるか試してみたところ、失敗。
AMD製CPUとの組み合わせなら、うまくいったという話もあるし、
IOMMU機能についてはAMDのほうが充実なのかもしれません…


ESXi4.1での蟹NICについて

ESXi 4.1上でRTL8111/8168を使える設定にしておいて、
しばらく放置していたために発覚しなかった点があった…。

たまたまの問題かもしれないが、H55のチップセットで、
このNICしかない状態でESXiを起動し、Windowsゲストを起動させたところで
うまく動かない点を見つけてしまった。

症状は、以下の2点確認できた。

  • 仮想マシン内のNICにDHCPでアドレスが割り当てられないこと。
  • 固定IPを手動で振って、検索エンジンへWebアクセスさせたがBadrequestになってしまう点

どうもうまく機能していないんじゃないかと思う。
これをIntel NICに取り替えてみたところすんなり動いたし。
やっぱりESXiはIntelのNICを準備しておかないとダメっぽい。

なおこの実験やってる最中に、手持ちのIntel PRO/1000MTが死亡しているのを確認。
家に在庫があっても故障していたりするし、困ったもんだ…。


XenServer6(beta)に期待してみたが。

先日 XenServer6(beta)を入手できるようになり、
新機能が魅力的に思えたので、まずはVMwareWorkstationにインストールしてみた。魅力的な機能としては、

  • ライブマイグレーション
  • GPUパススルー

ってところです。
以前にもXenServerはインストールして使ってみたことがあるのですが、
フリー版は年1回のライセンス更新があってちょっと面倒に思ってしまい最近は止めてしまっています。
この点は、今も昔も変わらずみたいです。

さて、インストールは順調に成功して、
普段使っているWindows7のPCにXenCenterをインストールして早速接続。
仮想マシンをWinXP SP3を作成し、OSインストールしない設定で仮想マシンだけ用意してみました。

なぜって、デバイスのパススルー設定がどのようになるか確認したかったからです。

さて見てみると・・・GPUの項目があるのですが以下のようになっています。

これを見る限りフリー版ではダメみたいです。
さらに調べてみたところ、Enterpriseエディション以上じゃないとダメみたい。

うーん、残念。

Xen4系列をFedoraやCentOSなどにいれて、GPUパススルー環境を作るしか
方法はないのかもしれません。

ちなみに Xen4.0.1をCentOS6に入れてみたのですが、
そちらもGPUパススルーは失敗。ブラックアウトしたままでした。
なかなか難しいですね。


NVIDIA PathRenderingがすごい

NVIDIAからOpenGL拡張のすごいやつがでました。
GL_NV_path_rendering という拡張です。
これは、アウトラインフォントやベクターグラフィックスのようなパス情報からデータを描画する拡張です。情報はこちらに:http://developer.nvidia.com/nv-path-rendering

3Dグラフィックスにおいては処理がどんどんGPU担当なのに、
ベクタ画像の2DグラフィックスではまだCPUが処理を担当しているという背景からこの拡張が生まれたようです。

この拡張は既存の3Dグラフィックスパイプラインにあたらしいパイプラインが使えることを意味するようです。

  1. 頂点シェーダー入力のかわりに、パス情報の入力
  2. パスの変形処理
  3. パスのフィル、ストローク、の処理
  4. この結果からラスタライズ処理
  5. ピクセル(フラグメント)シェーダー処理
  6. フレームバッファに格納

こんな感じでパイプラインが構築されています。
詳しくは、イントロダクションのpdfを参照ください。

パス情報については、SVGやPS(PostScript)のサブセットが使えるようです。

なかなか強力な拡張が入ってきたと思うのですが、
NVIDIAだけなので使用用途はまだまだ限定的ですね。
ですが、そのうちに自分でもコードを書いてみようかと思っています。


PVRテクスチャ形式の解析 その1

解析というほどでもないですが…調べてみた&わかったことをしばらく書いてみたいと思います。
PowerVR-SDKをダウンロードすると中に文章が入っています。
これが全てなのですが、防備録も兼ねてメモしていきます。必要な物は PVTRC Texture Compression.Usage.Guide(PVRTexLibの中のドキュメント)です。ここにファイルの中の画像データに関する情報が詰まっています。
ほか、PVRTCアルゴリズムの元であるSimon Fenny氏の論文”Texture Compression using Low-Frequency Signal Modulation”です。

PVRTC圧縮の特徴

  • 2BPP/4BPPから選択
    • RGBA8の画像に比べると 1/16, 1/8の圧縮率
  • 2べきサイズの正方形な画像である必要がある
  • アニメ調は不向きで写真のほうが向いている
  • スマートフォン用GPUではこの形式を直接扱える
    • PowerVR系ならば.
    • Tegra2とかでは使えない。

処理概要

PVRTCのデータから圧縮を解除してみることを考える。
PVRTCデータを伸張すると仮想的な3つのイメージデータが出てくる。
この3つのデータを合成し、最終的な画像を生成する。
ざっくり説明してしまうとこんな感じ。

3つの画像データのうち、1つはその他2つの画像をどのように合成するかのパラメータが格納された物である。
そして、2つの画像データ(画像A, 画像Bとしておく)は、元の画像データと比較して1/4のサイズになっている模様。