■CALENDAR■
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31     
<<前月 2024年12月 次月>>
■LOGIN■
現在のモード: ゲストモード
USER ID:
PASSWORD:
■NEW ENTRIES■
■RECENT COMMENTS■
■CATEGORIES■
■ARCHIVES■
■LINK■
■PROFILE■
■POWERED BY■
BLOGN(ぶろぐん)
BLOGNPLUS(ぶろぐん+)
■OTHER■

PhotoShop仮想記憶高速化の手法に対する個人的見解。
 さて。
 PhotoShopへは最大3.5GB程度しかメモリを割り当てることができないことは以前にも書いた気がします。
 もし画像データがPhotoShopが使用しているメモリ以上の記憶領域を必要とすると仮想記憶媒体へのアクセスを開始します。
 つまり現在のPhotoShopにおいては3.5GB(ウチでは3.18GBくらいですが)しか割り当てることができないわけです。

仮想記憶の無駄遣い例。

 それ以上の画像データはどの道仮想記憶を頼りにせねばならないわけで、普通の絵描き程度ならなかなか使い切る事もないのかも知れませんが、CMYK 600dpiでポスター版の絵などを作るとなれば話は大きく変わってくるかと(まあ原寸で作る、という前提なのですが)。
 または差分データバリバリの絵などを描いたりするとたとえ画像の大きさがそんなでもなくともレイヤ数が多ければ画像データは肥大化してしまいます。
 仮想記憶にアクセス速度の速い媒体を使うことがPhotoShopのパフォーマンスをできるだけ落とさないためには必要になってきます。

 仮想記憶速度向上にはどのような方法が考えられるか、またそれらにはどのような問題が挙げられるのか。過去に試した方法も合わせて個人的な考え方を長文にて書き連ねてみようかと。
 現状の絵描き環境に不満があり改善を模索されている方の参考になればよろしいかと。
 こうしてまた駄文粗製濫造がはじまる・・・。


■1.システムとは別の物理HDDに仮想記憶を配置する。
 まずはこれ。
 WindowsならほぼC:がOSやPhotoShopがインストールされているドライヴであると思われます。
 環境設定を特にいじっていない場合、PhotoShopの仮想記憶ディスクはPhotoShopがインストールされているドライヴになっているはずなので、OSや他のアプリケーションからのディスクに対するアクセス要求と一緒にPhotoShopの仮想記憶に対する要求が同じドライヴに集中するため(特にPhotoShopは大きなデータにアクセスする場合が多いので)、起動ドライヴに仮想記憶を割り振るのは効率的ではありません。
 PhotoShopを起動する際に出る警告なんかで知っている方もいると思いますが、別の物理ドライヴ(要は増設HDD)などに仮想記憶を割り振っておくとその辺りがスムーズになります。
 これは1台のドライヴの別パーティーション、と言うわけではありません。同じHDDの別パーティーションにしても基本的には同じ物理ディスクにアクセスするわけですので。
 できればPhotoShop仮想記憶用のドライヴには他のファイルなどを入れずにPhotoShopの仮想記憶専用ドライヴにしておきたいものです。
 ボクの経験上、他の画像データなどの保管庫と一緒に仮想記憶をしてしまうと、その保管データに圧迫されていざ仮想記憶が必要となった時にその分だけの容量がない、とか消せないデータばっかりで断片化しまくっていてデフラグもめんどい、などの副作用が出ます。
 だから容量がわざと小さいHDDを使うというのも手かもしれません。

■2-0.仮想記憶HDDの高速化(高性能品への変更)。

 当たり前ですが仮想記憶に使用しているHDDを単純に高速化すればそれだけ仮想記憶を高速化できます。
 回転数が高く、キャッシュが大きいHDDを導入すればそれだけアクセス速度が上がるわけですね。
 余りもののATA133のHDDを仮想記憶に使うよりはSATAのHDDを導入した方がよい、と言うわけです。
 ベンチなどでは数値が若干上がっただけかもしれませんが、体感では結構違うという場合もあるのでやはり少しでもよいものを使うと言うことは重要かもしれませんね。

■2-1.仮想記憶HDDの高速化(RAID0/5)。
 最近のマザーならオンボードでRAIDチップを搭載しているものが多いので、同じHDD2台でRAID0(ストライピング)化するのが手っ取り早いかもしれません。
 ボクの場合、ATA133の80GBHDD2台でPromise FirstTrek2000というRAIDカードを使ってRAID0環境を構築していました。このストライピングをしていた時代、オンボードRAIDなんてコンシューママザーではほとんどなかったものでPCIスロットに増設せざるを得なかったのですが。
 単純に2倍のアクセス速度アップだったかは微妙でしたが、それでもかなりアクセス速度は体感的には上がった気がします。
 SATAで最速な部類に入ると思われるWestern DigitalのRapterシリーズでRAID0運用すれば後述のSCSIストレージ系にも匹敵する速度が出るようで。
 それでいてドライヴ自体も70GBで2万円程度とSCSIストレージよりも若干安めだし、昨今の自作マザーではSATAでのRAIDをサポートしているのが多いので、追加のインタフェースカードを買わなくてよい分魅力かと。
 最近では同じHDD3台でRAID5のPCI拡張カードというのもあるのですが、まだ微妙高めですか。
 RAIDのデメリットはHDDを多く使用するのでスリムタワーやミニタワーのPCではスペースHDD増設が上難しいと言うこと、コストがかかること、電源もある程度大きくないと問題が出ること。
 自作やPCショップベアボーンならともかく、メーカーマシンでHDDを2台追加できるスペース的余裕があるのか、という気もしますが。

WD Rapter SerialATA 36GB 10000rpm buffer 16MB Serial ATA 1.5Gb/s WD360ADFD
WD Rapter SerialATA 36GB 10000rpm buffer 16MB Serial ATA 1.5Gb/s WD360ADFD

■2-2.仮想記憶HDDの高速化(SAS/Ultra320 SCSI)。
 これは2-0.と基本的には似たような意味合いなのですが、インタフェースが違うと言うことで別項としました。
 以前ボクもUltra320 SCSIの導入を考えたことがあって、知人に話したらコストパフォーマンス的に無駄だからやめれ、と言われました。
 それからRAMディスク方面に傾いていったわけですが。
 とにかくドライヴもインタフェースカードも高いです。
 SCSI規格のメリットはATA/SATA規格なんかよりアクセス時にかかるCPU負荷が少ないところくらいですかね。
 Ultra320 SCSIのドライヴは70GBで2万円は下りませんし、インタフェースカードも4万円以上ですね。
 一方SASは30GB程度で2万円とUltra320の容量1/2で同価格、ですがインタフェースカードはボクが好きなPromiseより1万円台から出ててよろしいかと。
 PhotoShopの仮想記憶にのみ使うと言うのであれば、思いっきり割り切ってHDDは中古でもよいのではないかと。
 アキバ界隈にはサーバ専門ショップ(こことか)なんてのがあり、中古のUltra160/320 SCSI HDDなんてのが新品の半値以下でゴロゴロしているので、そこらへんで導入費用を削るのもよいかも知れません。
 ベンチ的に見ると、Ultra320もSASもSATAのおおよそ約2倍の速度っぽいですね。
 実際に体感してみないと解からないところが大きいですが、単純にアクセス速度が2倍になるっていうのは想像以上に速くなるということですかね?。
 機会があれば是非とも試したい方法の一つであります。

■2-3.仮想記憶HDDの高速化(SSD)。
 最近話題になっているSSD。
 HDDは近い将来SSDに取って代わられるのではないかと期待されているようですが。
 モノはピン切りであるようですが、全体的にまだ高めです。
 価格の頃合的には8GBで2万、4GBでも1万円台で、容量が少なめなのは全体的に転送速度が低めになっています。
 まあこれをRAIDで組んでみるという方法もありますが・・・。ちょっと微妙ですか。
 パフォーマンス的には16GB以上/SATAのものが必要となるでしょうが、最低でも5万円以上となってしまいますので、現状ではコスト高となりますね。
 5万円も出すならUltra320 SCSIに移行する方が現状では賢いかと。

 SSD×2台のRAID 0レビュー ~今手に入る未来?~(参考)。

■3-0.仮想記憶の半導体メモリ化(ソフトウェアRAMディスク)。
 古くはDOS時代よりメインメモリの一部をディスクドライヴとして活用、高速処理を実現するという概念は存在しました。
 DOS時代はRAMディスクが2MB程度あればかなり贅沢な環境と言えたかもしれません。
 時は移って現代。
 やはりインターネット一時ファイルなどをRAMディスクに置くことにより高速な処理を実現するなどの活用法が見られますが、PhotoShopで使うようなGB単位でRAMディスクを確保するとなると、やはりそれ相応の問題が出てきます。
 32bitのWindows環境においてはいくらメモリを積んでいても4GB(実質3.5GB程度)しかメモリを認識せず、PhotoShopがそのメモリ中約2GBを占有します。
 残りのメモリをさらにOS本体や他のソフトなどが残りを食い合う状況ですので、ソフトウェアRAMディスクでPhotoShopの仮想記憶を確保しようとすると2GB程度が限界となります。
 昔、32bit Windows(Windows XP)で4GBメモリを載せて、そのうち2GBをRamPhantomというソフトを使ってRAMディスクとして使っていました。
I-O DATA RamPhantom メモリー領域 RAMディスク化ツール RAMPHANTOM
I-O DATA RamPhantom メモリー領域 RAMディスク化ツール RAMPHANTOM
 RamPhantomは一度インストールするとスイッチをON/OFFするようにRAMディスクを確保できるので、必要なとき(PhotoShopを使うとき)だけRAMディスクを用意することができ便利です。
 RAMディスクを一度味わうと病み付きになりますね。基本的にはメモリアクセスとほぼ同等の速度なので、PhotoShopの仮想記憶として使うにはRAMディスクが一番理想的だと思います。
 このようにソフトウェアRAMディスクは実に素晴らしいのですが、ある程度のCPUパワーが必要になります。特にPhotoShopでは大容量のデータにアクセスするので、32bitシングルプロセッサだと若干動作に不安が出てきます(Pentium4 3.0EGHz Prescottコアで使用)。
 手のひらツールなどでのスクロール時の画面の追従性の低下(1テンポ遅れての描画)というのを以前経験したので、これは推測ですがCPUパワーが不足していたのかなと思われます。
 スクロールの引っ掛かりとか追従性などの問題は気になる人には非常に気になりますからね。
 まあ作業状態にもよりますが、ボクの場合は2GB程度の領域ではすぐに足りなくなってしまうので、もっとメモリをPhotoShopで使えるようにするためには・・・と、昨年末困りに困ってとうとう64bit Windows(Windows XP x64 Edition)を導入するに至りました。
 64bit環境ではドライバやソフト関係を一から調べなおさないといけなくなり、その都合上64bit用のソフトウェアRAMディスクドライバを探し回ったのですが、国内では対応しているRAMディスクソフトはありませんでした。
 前述のRamPhantomも64bitは非対応。
 これでは何のために64bitにしたのかわからなくなってしまう(まあ64bit化したのはRAMディスクの問題だけではないのですが)、と言うことで調べまくった結果。
 ありましたよ。64bit対応のソフトウェアRAMディスクドライバが。
 CENATEK RAMDiskSEとかQsoft RAMDiskですね。
 RAMDiskSEはRamPhantomみたいな形で使えるようになっています。FATとFAT32はあるのにNTFSモードはないようなので、unformatからディスクの管理を使っていちいちRAMディスクをマウント→パーティーション割り→NTFSフォーマットの工程を経ないといけないのですが、相手はメインメモリなのでたいした時間をかけずにRAMディスクを使用可能状態にすることができます。
NTFSでフォーマットができないのですが・・・。
 しかし32bit版が$24なのに対し64bit対応版が$242ってのは一体どういうことなのでしょうか?。理解に苦しみます。
 一方のQsoft RAMDiskは評価版だからでしょうか、200MB弱の領域しか作ることができませんでした。でもこちらはNTFSでフォーマットすることができるようなので、使い勝手がよいかも。
 こちらは$12~$24で(64bit版は)購入できるので非常に良心的ですね。

 余談となりますが、64bit環境でも4GBのRAMディスクが限度だと思います。
 それではもっとRAMディスク領域が欲しい人はどうすればよいか?。
 そんな人はもはやXeonプロセッサ・サーバ系マザーに移行せねばなりません。
 Xeon系のマザーではメモリ搭載量が最大16GBとか32GB以上とかざらにあります。スペック上はものすごいキ○ガイ環境が構築できることになります。
 ですがここで問題になるのは、バルクのDDR2等の流用はできないということです。
 サーバ系マザーでは最低でもECC付き、更にはDDR2 FB-DIMMなんかがメモリの搭載条件だったりします。
 価格的にはDDR22枚分でDDR2 FB-DIMMが1枚買える位の換算でいいのですかね。16G買うとなるとざっと8万円・・・。
 流用+安メモリを大量に載せようと安易な妄想を抱いた方々(ボクですが)、誠に残念な結果となってしまいました。
 CPUからマザー、そしてメモリ全買い替え+変態容量を積もうとするとやはりかなりの出費を強いられるわけで、これは給料1ヶ月分丸々使うことになりますかね。
 とても思いつきで出せる額ではなくなってますね。
 単純にQuadコアならばXeonよりCore2Quadがどんだけ安いかが思い知れます。
 メモリ精度が低くたってnon-ECCの方がどんだけ安いのか。
 コンシューマ万歳。

■3-1.仮想記憶の半導体メモリ化(CF-IDE/SATA変換+RAIDカード)。
 CFをHDD代わりに使おうというのは昔からありますし、現在でも変換カードやコネクタなどが多く販売されていますね。
 産業用PCなどでも使われていたりするのですが、このCF変換シリコンディスクデバイスのよいところは、やはり場所をとらないに尽きるでしょう。静音とかもありますが、ここでは割愛。
 他のデバイスは多かれ少なかれ設置スペースに悩まされる事になるのですが、CF変換デバイスはPCIなりPCIe x1のスロットが空いていれば増設することができます。1スロット分のカードが多いので他のカードとかの干渉問題もかなり少ないと思います。
 そんなCF変換デバイスをPhotoShopの仮想記憶に使うとなるとやはり絶対的な速度が問題になってくるのではないかと。
 CFは間違っても速いデバイスではないので、できるだけ高速のものを選ばなければ成りません。実用速度を考えるならHDD程度は必要かと。
 266倍速以上のCFを使ってRAID0化は必須なのではないかと。
 これでSATA150のHDDより幾分か速くなる可能性が出てきます。とはいえRAIDチップとCFの相性問題などシビアらしいので、信頼性面で苦労しそうですね。
 CF変換シリコンディスクを一から組むとなると、よほどの理由が無い限り大人しくSATAのHDDでも買って増設した方がコストパフォーマンスはよいので、やはりPhtoShopの仮想記憶として使うには不適当かと思います。

 過去のヤフオクにて出品していた人(参考)。

■3-2.仮想記憶の半導体メモリ化(I-RAM及びRAMディスク拡張カード)。
 最近ではシリコンディスクと言う言葉が工業用だけではなくコンシューマでも一般化してきました。
 前述のSSDとかCFその他記憶メディアなんかもシリコンディスクと呼んでよいのでしょうね。
 ただ現在のシリコンディスクは安価で高速という条件からはどうしても外れてしまいます。つまり速いヤツは極端に高く安いやつは総じて低速、てなわけです。
 では安価で高速というデバイスは存在するのか?。
 そこでボクはI-RAMを導入しました。
 このI-RAMというものはDDRメモリをSATAディスクとして認識させるというデバイスで、1基で最大4GBのディスク領域が確保できます。
 速度的には130MB/sというP-ATA帯域の理論値がほぼ出せる(SATA接続ですがP-ATAをSATAに変換しているらしいです)という夢のデバイスであります。
 ソフトウェアRAMディスクのデメリットであったCPUパワー不足によるアクセス遅延問題も出ませんし、32/64bit環境も選びません。メモリを刺してポン付けすれば基本的に動作します。
 ソフトウェアRAMディスクのアクセス速度には所詮ATA帯域全部使っても遠く及びませんが、HDDよりは圧倒的に速いですし、SSDなどが苦手としているランダムアクセスにも強いのも利点かと。
 I-RAMを2基導入して、それぞれにメモリを4GBフルで載せてソフトウェアRAID(ストライプボリューム)で8GBの仮想記憶専用ドライブを構築、これにPhotoShopの一次仮想記憶ドライブを割り振って作業をしてます。
 I-RAMのデメリットとしては、拡張カード本体がかなり大きいのでPCケース内ので取り回しに苦労します。マザーやケースのレイアウトによっては隣のスロットに刺している拡張カードとの干渉なんていう問題も発生します。横置き・スリムケースでは増設が絶望的な状態になったりします(経験者)。
 またこのI-RAMは現在市場に流通しておらず、入手は困難でしょう。ヤフオク等で手に入れるしか導入手段は無いと思います。
 同様にDDRメモリも現在主流のDDR2に比べると割高なので購入には勇気と出費が必要になりますね。
 昨年、5"ベイに搭載するI-RAMというのが(GO-RAMDISK BOX)発売されたのですが、国内では販売されておらず、これもヤフオクなんかで若干数が売りに出されている程度です。

 I-RAM研究室(参考)。
 これはすげえ(ネタ)。

 これまでボクの考え付く限りのPhotoShop仮想記憶デバイス候補を列挙してみましたが、ボクの主観としてはI-RAM→ソフトウェアRAMディスク→Ultra320 SCSI/WD RaptorのRAID0運用というのがコストと性能を鑑みた際に妥当なのではないかと。
 I-RAMとソフトウェアRAMディスクは実際に運用している手段なので、現在の運用環境に不都合が出ない限り他の方法を取ろうとはそれほど思っていません。
 でもUltra320 SCSIでのRAID0はちょっと面白そうという気はしますね・・・。

異論がある方もいらっしゃると思いますが。

 ここに書いた事はある程度調べたりもしたのですが、もしかすると間違いや認識不足があるかも知れませんので、あくまでもボク個人の見解と言うことでキ○ガイ自称絵描きの自己満足駄文程度に読んでもらえればありがたいと思います。
| ヲタク::PCとか | 06:26 PM | comments (x) | trackback (x) |
PAGE TOP ↑