grbl1.1+Arduino CNCシールドV3.5+bCNCを使用中。
BluetoothモジュールおよびbCNCのPendant機能でスマホからもワイヤレス操作可能。
その他、電子工作・プログラミング、機械学習などもやっています。
MacとUbuntuを使用。

CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:



*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。


ラベル GPU の投稿を表示しています。 すべての投稿を表示
ラベル GPU の投稿を表示しています。 すべての投稿を表示

2018年9月10日月曜日

Google Colabの無料GPUで強化学習(Keras-RL)を試す

最近は、Google Colabの無料GPU(連続12時間まで)を使用して演算が可能なので、機械学習用GPUが搭載されていないパソコンでも充分機械学習の訓練などできそうです。使い方はオンラインのJupyter Notebookという感じです。


Colabスペック:
Ubuntu17.10(現在は18.04)
Intel(R) Xenon CPU @2.3GHz
13GB RAM
GPU NVIDIA Tesla K80

スペックはこんな感じ。アルゴリズムにもよりますがTesla K80がどのくらい高速なのかが気になります。自前のゲーミングノートはPascal世代のGTX1060ですが、K80はそれよりも2世代前のKepler世代のGPUのようです。
!nvidia-smiを打ち込むと以下。


このほか、機械学習に必要な基本的なライブラリはnumpy、pandas、matplotlib、Tensorflow、Kerasも含め既にインストールしてあるようです。Pytorchは入っていないのでインストールする必要があります(追記:その後Pytorchなどもインストール済みになったようです)。

ということで、前回のKeras-RL + Open AI Gym Atariの訓練(1750000ステップ)を比較してみようかと。自前のゲーミングノートGTX1060では約3時間かかりました。


インストール:
とりあえず、Keras-RLやGymなど必要なものをapt-get installやpipで前回同様にインストールする必要があります。
!pip install gym keras-rl pyglet==1.2.4
!apt-get install -y cmake zlib1g-dev libjpeg-dev xvfb ffmpeg xorg-dev python-opengl libboost-all-dev libsdl2-dev swig
!pip install 'gym[atari]'
最初に「!」マークをつけたあとpipやapt-getなどでインストールできます。今回は上記のものをインストールしました。前回Jupyterの際、pyglet1.3.2だとダメだったので、最新ではないpyglet1.2.4をインストールしています。
必要なライブラリなどはインストールできますが、再度ログインするとまたインストールし直さないといけないようです(Colab内は毎回クリアされる?)。


実行時間の比較:
以下が自前のGTX1060での訓練時のログ。これは前回Jupyter用に書き直したAtariブロック崩しの訓練です。
10000ステップで約60秒かかっています。訓練するには合計1750000ステップあるので、約3時間ということになります。

これに比べて、Google Colab(Tesla K80)の方は以下。
10000ステップで約108秒かかっています(意外と遅い)。
自前のゲーミングノート(GTX1060)のほうが1.8倍速いという計算になります。
とはいっても普通のMacBook(CPU演算)に比べればはるかに速いとは思います。

しかしながら、370000ステップの途中で突然ストップしてしまいました。
最後に、「Buffered data was truncated after reaching the output limit」という表示が出ています。何か出力限界に達したようで、途中停止しています。
検索してみると、Stack flowに似たような件について書いてありました。RAMかGPUのメモリをオーバーしてしまったようで、バッチサイズを少なくするか、小分けに途中経過(ウェイト)を保存しておいて再開するかなどの工夫が必要そうです。一応プログラム上ではチェックポイントを設けて250000ステップごとにウェイトを途中保存してはあります。
やはりある程度の規模になると、使用する上での工夫が必要そうです。今回の場合だと1750000ステップの訓練をさせるには概算すると5時間はかかりそうです。連続使用12時間以内で済みそうですが、それ以前にメモリなども気を遣わなければいけないということです。
ということで、処理速度を知りたかったので訓練は途中で終了。

動画表示:
そのかわりに、以前保存しておいたウェイトを読み込んでColab上に表示できるか試してみました。
尚、外部ファイルなどを読み込ませるには以下を書き込んでランさせるとファイル選択ダイアログがでてきて、パソコンの任意の場所からファイルを読み込むことができます。
from google.colab import files
uploaded = files.upload()
前回Jupyter上で表示可能であった方法を試してみましたが、画面のちらつき、動画としての更新速度が非常に遅く、いまいちという結果。

ということから一旦出力画像を非表示にして、matplotlibのArtistAnimationに変換後表示する方法を試してみました(以下)。
from rl.callbacks import Callback
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from IPython.display import HTML
%matplotlib inline

ims = []

class Render(Callback):
    def on_step_end(self, step, logs={}):
        im = plt.imshow(env.render(mode='rgb_array'))
        ims.append([im])

weights_filename = 'dqn_{}_weights.h5f'.format(ENV_NAME)
dqn.load_weights(weights_filename)

callbacks = Render()
fig = plt.figure(figsize=(4,5))
plt.axis('off')
dqn.test(env, nb_episodes=1, visualize=False, callbacks=[callbacks])

ani = animation.ArtistAnimation(fig=fig, artists=ims, interval=10)
# ani.save("anim.gif", writer = "imagemagick")  # imagemagick for Ubuntu
plt.close()

HTML(ani.to_jshtml())         # JavascriptHTML output
#HTML(ani.to_html5_video())   # HTML5 Video output
これは前回もJupyter上で試した方法です(前半の訓練時のコードは省いてあります)。一旦画像は非表示にして、Keras-RLのCallback関数をオーバーライドして表示用サブクラスをつくっています(詳しくは前回参照)。Keras-RLはdqn.test()で別窓に動画表示してしまうので、それを非表示にしておき、Jupyter上で表示可能なデータに変換してから表示しています。
結果的には、アニメーションとして最後表示することができました。Jupyterも表示には手こずりましたが、Colabはオンラインでもあるためどうしてもリアルタイムだと遅くなってしまうようで、このようにアニメーションとして変換してしまえば問題なさそうです。アニメーションに変換する分、少しだけ(数十秒程度)余計に時間がかかりますが、特に目立った遅さではないのでこれでいけそうです。

アニメーションとして保存してあるので、オンラインによるタイムラグはなく普通に速く動きます。
Atariの場合はこのようにColab上に表示されますが、CartPoleのようなClassic controlの場合はレンダリングの仕組みが違うためかColab上のアニメーションだけでなく別窓にも表示されてしまいます。

追記:尚、このボタン付きアニメーションをWebページに埋め込むには以下。
Matplotlib Animation embed on web page:アニメーションのWebページ上への埋め込み


まとめ:
結果的には自前のゲーミングノートGTX1060のほうが速かったのですが、数時間かかりそうな訓練の場合にはGoogle Colabのほうで処理させておき、メインのパソコンではまた別の作業をという感じで使うこともできそうなので、それなりに便利かと。
今後はこのようなGPUのクラウドサービスが主流となってくれば、機械学習をするにはわざわざゲーミングパソコンを買うまでもないかと思います。ネットだけできればいいような5万円前後のGoogle Notebookでもいいのかもしれません。


2018年1月28日日曜日

ひさびさにモナコインをソロマイニングしてみました

しばらく仮想通貨マイニングはしていませんでしたが、モナコインのチャートを見ると、去年末には一時期2000円を超えていたにもかかわらず、その後仮想通貨全体の暴落もあり、一気に半値以下まで下がっていました。もしかすると、Difficultyが下がっているのかもしれないと思って、試しにソロマイニングをやってみました(GTX1060のゲーミングノートパソコン使用)。

確か去年末はDifficultyが55000程度だったのですが、今は少し下がっています。元々多少上下するのですが、低くなっているようではあるので、パソコンを使っていない外出中や夜中などにソロでマイニングしてみようかと。

やはりソロマイニングはなかなかヒットしませんが、
一晩おいて次の日の午前中にひとつ採掘成功(ソロでは初めて)。一気に25モナコインをゲットできました。採掘されるとすぐに以下のウォレットに入金されました。
1モナコイン=700円だとすると、一回の採掘で17500円稼いだことになります。かなりすごい。もしレートが去年末の2000円であれば50000円でしたが、今となってはしかたありません。また価格が上昇するのを待ってしばらくキープしておこうと思います。
調子にのってその後数日採掘を継続してみましたが、やはりGTX1060程度ではなかなかヒットしません。これは偶然なのかもしれませんが、宝くじよりは確率高いような気もします。

中国や韓国の仮想通貨規制問題などで価格はどんどん下がっており、しかも先日のコインチェックのハッキング事件でもさらに下げてしまい、仮想通貨全体的に価格はやや低迷しています。どうやら、毎年1月そのものが価格を下げる時期らしく(年末に利確する人が多い)、また2月から年末に向けて少しずつ上昇していくことに期待するしかありません。仮想通貨における懸念や急暴落が問題視されていますが、仮想通貨に乗り出している企業や銀行もどんどん増えており、まだまだ市場は拡大していると思うので価格も上昇していくと思います。

ちなみに仮想通貨マイニングとAI用コンピュータの需要のせいかGPU自体も値上がっているようです。

2017年12月6日水曜日

Pytorch CUDA 9.0

ようやく正式にCUDA9.0のPytorch0.3.0がリリースされたようです。前回、慌ててソース版をコンパイルする必要もなかったようです。早速入れ替えてみようと思います。環境:Ubuntu16.10、GTX1060、CUDA9.0、cuDNN7.0。

無難にPython3.5で。pyenv仮想環境内にさらにAnaconda仮想環境をつくり、py359というAnaconda仮想環境内にインストールしています。ちなみに現在はpy27(python2.7、cuda8.0)とpy35(python3.5、cuda8.0)という仮想環境も別にインストールしてあります。

インストール後、Pythonを起動し、
import torch
torch.version.cuda
で、CUDAのバージョン確認、'9.0.176'になっています。
torch.backends.cudnn.version()
で、cuDNNバージョン確認、7004になっています。

いつものPytorch/examples/dcgan/cifar10を動かしてみると(1イテレーション=784回)、
1:15.80=75.8秒くらい。このサンプルでCUDA8.0と比較すると2秒くらい速くなったかもしれません。

2017年12月2日土曜日

仮想通貨モナーコインのGPUマイニングを試す

GPU(GTX1060)ゲーミングノートパソコンがあるので、仮想通貨のマイニングを試してみました。一般的にマイニングはあまり儲からないと聞きますが、どの程度なのか実際確かめてみることにしました。ビットコインは、もうすでに100万円を越しており、マイニングするにも電気代がものすごくかかるようで、

仮想通貨のマイニングに使用された電力、すでに世界159カ国の年間使用量を上回る

このようにニュースでも騒がれています。とは言ってもその他の仮想通貨もどんどん出てきており、今後破綻する仮想通貨もでてくるのだと思いますが、エネルギーや経済のシステムがどんどん変わりそうです。

GPUマシンをフル回転させるため、機材と電気代を合わせるとなかなか採算とれないようで、そのかわり一切を業者に頼むクラウドマイニングというシステムもあるようです。クラウド上のGPUマシンを使ってマイニングするという感じでしょうか。

国内でもモナーコイン(2013年12月〜)という仮想通貨があるようで、まだまだ人気はないようですが、
coingecko.comより

突然ここ数ヶ月で数十円から一気に700円くらいまで値上っています。
ということで、この急上昇中のモナーコインで発掘(マイニング)をしてみました。方法についてはネットで検索するといろいろ出てきますが、一応簡単にやってみた手順を書いておきます。
Linux(Ubuntu)で試そうと思いましたが、LinuxやMacだとソースをコンパイルする必要があり、エラーで上手くコンパイルされないためにWindows版に切り替えました。Windows版はすでにバイナリのアプリがダウンロードできるので簡単です。

準備:
(1)モナーコインのウォレット/財布(モナーコインサイトからダウンロード
(2)マイニングプールへ登録(グループで採掘:とりあえずvip poolというグループ)
(3)発掘ソフトをダウンロード(ここを参考に

それぞれの手続や入力項目はありますが、この3つですぐに始められました。
基本的には、発掘ソフトでモナーコインを発掘し、得たモナーコインを財布にためていくだけです。
マイニングプールは、グループに所属して作業量などに応じて発掘されたモナーを分配する仕組みのようです。ソロで発掘すれば、独り占めできるようですが、そのためにはかなりパイスペックな機材が必要らしいので、一般的なパソコンを使って発掘するにはグループに所属したほうがいいらしいです。
AliExpress.com Product - YUNHUI Newest Bitcoin Miner Ebit E9 Plus 9T 14nm Asic Miner BTC Miner better than Antminer S7 and high Cost-effectiv than S9 .262,276円(送料無料)AliExpressでもハイスペックなマイニングマシンが売っています。GPUよりすごいASICというマイニングマシンです。以前から中国が世界中のマイニングを行っていましたが、マイニングが規制されたため中古品などが多く出回っているそうです。

(1)のモナーコインのウォレット/財布は、発掘したモナーをためておく銀行口座のようなもので送金/入金をこのソフトで行うようです。しかし、(2)のマイニングプールに所属していれば、一時的にそのグループ内のアカウントに発掘したモナーを貯めておくこともできるので、ある程度貯まったら(1)のウォレットへ送金するということになるようです。
ダウンロード自体はすぐですが、一旦立ち上げるとネットワークと同期する必要があるようで、けっこう時間がかかるためしばらく放置しておきます。数時間はかかるので、その間に次のステップ:受取口座(アドレス)をつくっておきます。
C:¥Program Files¥Monacoin¥monacoin-qt.exe
がこのウォレットソフトになります。
それとは別の場所の
C:¥ユーザー¥user¥AppData¥Roaming¥Monacoin(フォルダ)
このフォルダにはその他必要な設定ファイルやバックアップファイルなどが入っています。
読み込み中の内容を見ると、過去数年前まで遡ってモナーコインのすべての取引データを読み込んでいるようです。ということは10年経てば10年分のデータを各自のパソコンが読み込まなければいけないということになりそうです。仮想コインは中央集権型ではなく、分散型で各自利用者が銀行のような業務を担うのだと思うのですが、それにしてもどんどんデータ(取引台帳)がかさんでいくのでパソコンのハードディスクもそこそこ残しておかないとだめかもしれません。ウォレットソフト自体は数十MBですが、設定ファイルなどが入っているほうのMonacoinフォルダは2GBくらいあります。
ウォレット内の「入金(R)」をクリックして「ラベル」に適当な名前をつけて、支払いを「リクエストする(R)」を押すと、受取用アドレスができ、QRコードとともにMで始まる長い文字列アドレス(振り込んでもらう口座番号)ができあがります。毎回のトランザクションごとに新しいアドレスをつくったほうがいいと書いてあるので、その都度アドレス(振込先)が変わるようです。
ここで、一つ受取アドレスをつくっておいて、それを以下のマイニングプールからの受取に使います。

(2)のマイニングプールはグループで採掘する採掘所のようなもので、所属していればその働きに応じて利益を分配してくれるようです。
登録するには、以下のような項目を入力して認証メール受け取り後ログインできるようになります。
どうやらこのサイトのサーバを介して発掘しているようで、このサイトで各種設定や状況などを確認できるようです。このvip poolにおけるユーザー名/パスワードを決め、Monacoinアドレスには(1)のウォレットでつくった受取アドレスを記入(この部分は後で変えられるはず)、PIN番号はvip pool内で設定変更などしたときの認証番号です(適当な4桁)。
ログインしたら、アカウント>ワーカーへ行き、「新しいワーカーの追加」をします。
とりあえず適当な名前とパスワードを記入し、「ワーカーの追加」ボタンを押します。「指定Difficulty」という設定があるので、パソコンのスペックに合わせてその値を決めます。GTX1060だと8か16くらい。普通のCPUだともっと低くて0.125などとなるようです。Hashrateはパソコンのスペックに応じた発掘能力のようで、自動で切り替わったり、あとで変更も可能なので、注意書きにある参考値を元にとりあえず記入しておきます。
この設定したワーカーで発掘することになりますが、通常は一つつくればいいのだと思います。
あとは以下の発掘ソフトを起動するだけです。

(3)の採掘ソフトは、CPU用ならcpuminer、GPU/Radeonならsgminer、GPU/Nvidiaならccminerと分かれています。採掘ソフトの設定次第ではソロでも採掘できるようです。ソロの場合は(3)で採掘したモナーコインを直接(1)のウォレットへ送金するというかたちになるようです。
この採掘用ソフトが、LinuxとMacの場合はgithubにあるソースをコンパイルする必要があり、コンパイル中にエラーばかりでてしまいました。Windowsの場合は、ダウンロードすればコンパイル済みのアプリが入っているので、設定項目を追記すればすぐに使うことができます。
ちなみにvip poolというグループに所属し、以下の採掘ソフトを使ってみました。

ccminer-djm34-mod-r1(採掘ソフト)の場合:
ダウンロード/解凍すると、
djm34-mod-r1 フォルダ
└ ccminer-djm34-mod-r1 フォルダ
    ├ ccminer アプリケーション
    ├ LYRA2REv2-START バッチファイル
    └ vcrumtime140.dll

というファイルがあり、
LYRA2REv2-STARTをエディタで開き、既に書いてある内容を一旦消して以下だけを記入。

ccminer.exe -a lyra2v2 -o stratum+tcp://vippool.net:8888 -u loginname.workername -p workerpassword

loginnameにはvip poolへ登録したログイン名、ドットを挟んでworkernameはvip pool内で設定したworker名、workerpasswordはworker用のパスワード。
このLYRA2REv2-STARTは、.batファイルなので、そのままダブルクリックするとコマンドプロンプトが立ち上がってすぐに採掘を開始します。

こんな感じで、コマンドプロンプトに採掘状況が出てきます。「yes!」なら採掘成功、「booooo」なら失敗。たまに失敗しつつ、比較的多く10秒おきくらいに「yes!」が出てきます。しかし、「yes!」が出たからと言って、すぐに報酬につながるわけでもなさそうです。
報酬につながるためにはブロックを発見しなければいけないようで、グループで作業しても1時間に1〜3回程度です。このへんの仕組みがまだ良くわからないのですが、「yes!」が出れば一応仕事をしているという感じです。

結果(マイニングプールで24時間稼働):
24時間放置して動かしてみた結果です。
ベストな設定なのかわかりませんが、結果的に24時間で0.17863435モナ獲得できました。現在1モナは700円前後なので、約125円/日ということです。

ここで電気代についても見てみると(こちらの電気代計算サイトより)、
nvidia-smi.exeでGTX1060の稼働状況を見てみると70W/h前後でした。ということで、上画像にあるように約40円/日かかっています。
つまり現在のモナーコインレートで換算すれば、125-45=85円/日プラスという結果が得られました。当然モナーコインの価値が下がれば、その分利益も低くなってしまいます。

ソロマイニングを試す:
採掘ソフトであるccminerにはソロ採掘設定もあるので、比較のため試してみることに。ソロマイニングは確率は低いですが一回の報酬を独り占め(25mona:レート700円なら17,500円)できるようです。
まずC:>ユーザー>user>AppData>Roaming>Monacoin内にmonacoin.confというファイルをつくります。このとき拡張子ありでファイル名を見るとmonacoin.conf.txtになっていることもあるので、.txtはつけないで保存します。
その中にエディタなどで以下を記入:
rpcuser=user
rpcpassword=password
rpcallowip=192.168.0.0/255.255.0.0
rpcallowip=127.0.0.1
rpcport=4444

次に今までマイニングプールで使っていたLYRA2REv2-START.batファイルの複製をつくり、LYRA2REv2-SOLO.batなどと名前変更してソロ用の設定に書き換えます。

ccminer.exe -a lyra2v2 -o 127.0.0.1:4444 -u name -p password --no-longpoll --no-getwork --coinbase-addr=walletaddress

-u name -p passwordは、monacoin.confの中のrpcuser=user、rpcpassword=passwordと同じものです。walletaddressには、モナーコインウォレットでつくったmから始まる入金アドレス。ipアドレスの部分は基本的にこのままで大丈夫です。

ソロマイニング起動:
まず、monacoin-qt.exe(ウォレット)を起動します。これがサーバとなるようです。そして今つくったLYRA2REv2-SOLO.batをダブルクリックすればソロマイニングが始まります。

追記:
その後ソロマイニングでやっと一回(25モナコイン)をゲットできました

やはり、ソロマイニングだとまったくヒットしません。何日間かやって、やっと一回当たるくらいの確率らしく、ほとんど運次第のようです。グループでマイニングしたほうが少なからず分配報酬があるので、まだましなのかもしれませんが、ゲーム感覚でするなら一攫千金的なソロマイニングのほうが面白そうです。
獲得したモナーコインは、ZaifbitFlyerなどの取引所で円に交換できるようです。そのためにはZaifやbitFlyerのアカウントが必要となります。



bitFlyer ビットコインを始めるなら安心・安全な取引所で


NiceHash Miner:
そのほか、NiceHash Minerというプールマイニングも試してみました。セッティングも簡単で、すぐに始めることができました。
採掘先や効率などは自動設定らしく、結果はビットコインによる送金らしいです。ビットコインの受取アドレスが必要となるので(NiceHashに一時的に貯めておくことも可能)、Zaifなどの取引所のアカウントを持つか、ElectrumCopayなどのウォレットをつくっておくといいと思います。
設定をJPYにして採掘開始してみると、そのパソコンのスペックに応じて、一日の予想採掘量が表示されます。GTX1060の場合は、183.52円/日(採掘中に多少変動する)くらいです。先程のvip poolより少しだけ率が高いですが、だいたい似たような感じです。
コマンドプロンプトが出てきますが、基本的には画面のスタートボタンを押すだけで勝手に採掘開始します。
コマンドプロンプト画面を見ていると、たまに採掘先(かならずしもビットコインばかりではない)や採掘スピードが自動で切り替わっているようです。ビットコイン以外も含め、状況に応じて効率よく掘っているらしいです。パソコンが一時的にアイドル状態になると自動的に採掘開始してくれるオプション機能もついています。要はパソコン不使用時に自動的にマイニングを開始してくれる機能というわけです。GPU付きのパソコンでもせいぜい数千円/月しか稼ぐことはできませんが、電気代以上は稼いでくれるのでそんなに悪くはないかもしれません。

計算で収益を求める:
どうやらそのパソコンの計算能力/採掘能力のことをハッシュレート/hashrateと呼び、NVIDIAのGPUであれば、
GTX1050 10.01MH/s
GTX1050Ti 11.49MH/s
GTX1060 23.39MH/s
GTX1070 35.88MH/s
GTX1080 47.68MH/s
GTX1080Ti 58.05MH/s
という感じで、数値が大きいほど能力が高い。
それに対し、各仮想通貨におけるDifficultyという暗号解読の難解さの指標もあるようで、現在のビットコインなんかはものすごくDifficultyが高いようです。
24時間あたりの報酬は、
hashrate(kh/s)/Difficulty=報酬(1日)
で概算できるようです(こちらを参考に)。
GTX1060を使用、現在のモナコインのDifficultyはこのサイトを参考にすると約59000、
23390/59000=約0.40
となり、1モナ=800円ならば、
0.40モナ=320円/日
となるようです。もし、ソロマイニングするなら一回堀り当たれば25モナの報酬がもらえるので、
25/0.4=62.5日間
となり、毎日掘り続けても約2ヶ月に1回掘り当てるくらいの確率になるらしい。1モナ=800円なら、一回掘り当てて20000円になるので、確率的には10000円/月という感じでしょうか。

ブロックチェーンアルゴリズムには興味ありましたが(仮想通貨そのものにはそれほど興味なく)、仮想通貨の世界もいろいろ進化しているようです。仮想通貨以外にもトークン(仮想通貨の株式みたいなものらしい)と呼ばれるものも数多く存在し、どんどん従来の経済の仕組みが変わっていきそうです。仮想通貨に興味なくても、一応知っておいたほうが今後のためにもなると思います。

追記:(2017/12/07)
Nicehashのソフトはインストールしたもののあまり使っていませんでした。数日後ためしにつなげてみようとしてもつながらないのでネットで調べてみると、以下のようなニュースが。

「ビットコイン盗まれた」76億円相当か マイニングプール「NiceHash」ハッキング被害

このようなトラブルが起きたようで当然サイトがストップしていました。内部関係者の仕業とも噂されていますが、真相はまだわからないようです。いずれにせよ、Nicehashに預けておいたビットコインはもう戻ってこないでしょう。個人的には16円くらいの損害ですが、Nicehashの場合はたしか最低0.01ビットコイン以上(今のレートであれば17000円)でなければ途中出金不可だったはず(そこまで貯めるにも数ヶ月はかかる)。そのため引き出したくても引き出せない仕組みになっています。基本的には、ほぼ保証ということがない世界でもあるため、稼いだらすぐに自分のウォレットに移動というのが理想的な管理方法ですが、今回の場合はそうもできない人も多くいたということです。Mt.Gox事件のときもそうですが、一見きちんとした取引所であっても突然消滅することはあるので、こまめに手元に送金して保管しておいたほうがよさそうです。

追記:
その後NiceHashにアクセスしてみたところ復活してはいますが、アプリを立ち上げてみたら案の定以前マイニングした約16円分はゼロになっていました。

それとは裏腹に、数日も経たないうちにモナーコインが2000円突破してしまいました。あっという間です。同様にビットコインのほうもどんどん値上がっています。ビットコインは現在180万円ちかくまで高騰していますが、年内中に200万円突破しそうな勢いです。いろいろな仮想通貨やトークンが出ていますが、中途半端な通貨は人気がでなくて、王道のビットコインに一極集中していきそうです。まだまだ値上がるのではないでしょうか?

最近もビットコインは着実に上昇していて、年内には200万円突破するかもしれないと言われていましたが、あっというまに突破してしまいました。少し調べてみると、この1ビットコイン=200万円という数字は、現在流通している貨幣なかでも5番目に規模の大きい通貨となっているようです(参照:bittimes)。
アメリカドル:1兆4200ドル(150兆円)
ユーロ:1兆2100億ドル
中国元:1兆ドル
日本円:8560億ドル
ビットコイン:3000億ドル
インドルピー:2500億ドル
ロシアルーブル:1170億ドル
イギリスポンド:1030億ドル
というランキングになっているようです。5位だったインドルピーを抜き、4位の日本円を抜くにはまだ半分以下ですが、もしかしたら数年以内に抜いてしまうのかもしれません。

ビットコインの時価総額をCryptocurrency Market Capitalizationsで調べてみると、
確かに仮想通貨の中でもダントツで総額3000億ドルとなっています。ビットコインの場合最大発行数上限が2100万枚と決まっているようで現在1673万枚。もはや後半ですが、上限に到達したら逆に希少価値となってしまい、さらに値上がるとも考えられているようです。
また仮想通貨全体では、
4457億ドルであり、ビットコインだけで67.0%を占めているようです。ブロックチェーンという機能的なメリットというよりも(他の仮想通貨で機能的に優れているものも多いはずなのに)、単にネームバリューだけで人気を稼いでいるかのようです。取引されている上場仮想通貨は1334種類もあるようですが、ビットコインがあくまで先頭を走っています。

ちなみにモナコインは少し落ち着いたようで2000円前後を上下しています。
それでもここ数週間で一気に値上がったこともあり、現在19位というのがすごい。年内3000円行くかもしれないと言われていますが、それよりもビットコインの上昇に歯止めが効かなくなっている状態なので、多くの人はビットコインの動向に注目しており、他の仮想通貨はやや注目されにくい状況なのかもしれません。



また他のマーケットとの比較では(上図はやや古い数値になっていますが)、現在ではビットコインだけで$300B(3000億ドル)であることから、アマゾン時価総額に追いつこうとしています(仮想通貨全体ではほぼアマゾンと並んでいる状態)。その上にはApple、そして米ドル、金などとまだまだ先はあるのですが、少しずつビットコイン市場へそれらの貨幣が移動してくれば、まだまだ成長する余地がありそうです。
今から約5倍値上がって、1ビットコイン=1000万円ともなるとアメリカドルと並んでしまうので、そこを目指しているのか、それともそれ以上になろうとしているのか、もしそうなってしまえば、かなり経済の仕組みは変わりそうです。

その後、数日でビットコインは180万円くらいまで下落しています。つい先日までは時価総額3000億ドルありましたが、現在は2624億ドルまで減っています。

というのも、ビットコインは上位1000人ほどが40%を独占しているようで、その人達によって価格操作も可能のようです。


この人達の思惑はどのような方向を向いているのかわかりませんが、ドルを越える世界一の通貨にしようとしているのか、あるいは途中で何かに乗り換えるのか、いずれにせよしばらくは上下に揺さぶりながら、少しずつ時価総額を増やしつつ上り詰めるのではないでしょうか。

2017年11月17日金曜日

GPU:GTX1060で再度DCGAN(CelebA)を試してみる

前回MacBook Pro(2014年製)でDCGANサンプルCelebAを動かすと29時間もかかりましたが、今回GPU:GTX1060で試してみたところ、たった36分で終わってしまいました。MacBook ProのCPUで計算するよりも約48倍高速という結果が得られました。予想以上に速くて驚きました(というかMacBook Proが遅すぎなのかも)。

MSI GS43VR 7RE Phantom Pro(14型ゲーミングノートPC)
プロセッサ:Intel Core i7-7700HQ
GPU: GeForce GTX1060(6GB)RAM: 16GB
Ubuntus 16.10
ndivia-384
CUDA9.0
cuDNN7.03
Python3.6
Anaconda仮想環境(python3.5/cuda80/cudnn6.0/tensorflow-gpu1.3)


約20万枚の画像(64x64px)を使って6330回動かしてみた結果です。これらの顔画像はDCGANによって生成されたものであり、実在の顔ではありません。結果は前回と代わり映えしないですが、GPUによる圧倒的な速さで、今後このような画像生成も時間をかけずにいろいろ試していけそうです。
前回問題だったのは、一度プログラムを動かしてしまうと数十時間他のことができなくなってしまうということでした。しかしながら、この手のプログラムであれば、1時間もかからず結果が出せるので、効率よく作業ができそうです。

こちらは、実行中にnvidia-smiでGPUの状況を出力したものです。GPU稼働率91%ということでしょうか?
また、nvidia-settingsと打てば、以下のような画面もでてきます。
ここではGPU稼働率98%になっています。

GPU出力はAuto/Adaptive/Prefer Maximum Performanceがあるようです。いつのまにかAdaptiveが選択されていました。試しにAutoに変えてみようかと。

実行中はGPUの温度が72度前後でした。普段は50度前後なので、そこそこ熱くなっているようです。そのためファンはほぼ全開で動いていました。

Anacondaを通してTensorflow-gpu1.3をインストールしていますが、GPU用にコードを書き直さなければいけないと思っていたら、GPUがあれば自動的に優先して計算してくれるようです。Tensorflowサイトの「Using GPU」に書いてありましたが、tf.device()で意図的に使うこともできるようです。Pytorchなら、torch.cudaもしくは.cuda()

Anaconda Navigator:
Anacondaのおかげで、Ubuntu16.10、CUDA9.0、cuDNN7.0をインストールしたにもかかわらずGPUが機能していると思っていますが、Anacondaをインストールするとライブラリの検索やインストールもすぐにできるAnaconda Navigatorも使えるようになります。Anaconda.cloud(要登録)につなぐとさらに便利になります。
anaconda-navigatorと打てば、このような画面が出てきて、わざわざターミナルでタイプしなくてもここでライブラリやパッケージをインストール/アンインストールできます。またjupyter notebookもボタン一つで立ち上がってくれるので便利です。いくつかアプリケーションも含まれており、spyderというエディターもかなり便利そうでした。Anaconda一つあればすべて済んでしまうという感じです。ただ問題としては、MacとWin用のAnacondaの場合はランチャーがあるのですが、Linux用だけないようです。しかたなく、ここを参考に自力でつくりました。
MacBookのほうではAnacondaを入れていないので(元々Pythonにもvirtualenvやpyenvなどの仮想環境はありましたが)、それぞれインストールなどはpipとhomebrewで行っていました。今回Anacondaを導入して、仮想環境の便利さが分かったので、Macのほうにも入れてみようと思います(またいろいろインストールし直さなければいけませんが)。
環境はだいたい整ったので、Kaggleなどもやってみたいと思います。

関連:

2017年11月16日木曜日

デュアルブートWindows10/Ubuntu16.10/NVIDIA-384/CUDA9.0/cuDNN7.0/Anaconda

前回の投稿にも書きましたが、現在使用しているMacBook Pro(2014年製)の後継機として、MSI GS43VR 7RE Phantom Proという14型のゲーミングノートパソコンを購入しました。GeForce GTX1060のGPU内蔵なので、Deep Learningの計算をさせればMacBook Proよりもずっと速いはずです。Windows10ですが、Deep Learningのプログラミング環境では、Linuxのほうが高速に処理してくれるらしいので、Linux(Ubuntu)とWindows10のデュアルブートにしました。
MSI GS43VR 7RE Phantom Pro ゲーミングノートパソコン:
プロセッサ:Intel Core i7-7700HQ
GPU: GeForce GTX1060(6GB)
RAM: 16GB
HD: 256GB(PCIEx Gen3) + 256GB(SSD/SATA:オプション変更)
画面:14インチ/1920x1080px
サイズ:345x245x22.8mm
重量: 1.8kg

Deep Learning用のパソコンにするには、以下のことが必要らしい。
・デュアルブート(万が一LinuxがダメならWindowsに戻るため)
Ubuntuのインストール(ほぼ定番)
NVIDIAドライバ(GPUドライバ)のインストール
CUDA(NVIDIA/GPU並列計算プラットフォーム)のインストール
cuDNN(NVIDIA/Deep Learning用ライブラリ)のインストール
Anaconda(Python統合環境/Python3.6含む)のインストール
Pytorch(Deep Learningライブラリ)のインストール
Tensorflow(Deep Learningライブラリ)のインストール
PyCharm(エディタ)のインストール

1日で終わればいいけど、そう簡単には終わらないはず。特にLinux(Ubuntu)で環境を整えるのは、バージョンの違いなどもあるためかなりハマりそう。ネットで調べてみてもトラブルが多い。
結果的には何とか動きましたが、何回もインストールし直し、思うようにいかず設定に数日かかってしまいました。

これはUbuntu16.10上の画面です。通常Ubuntu16.04が最適なバージョンですが、MSiのゲーミングノートPCとは相性が悪いのかフリーズしたりほとんど使えない状態でした。やむを得ず、Ubuntu16.10にしてみて悪戦苦闘の結果なんとか動いたという感じです。Ubuntuのバージョンによって、対応するドライバやライブラリなどが変わってしまうので、その組み合わせが難しい。
Ubuntuを何回もインストールし直していると、コンピューター好きには楽しいのですが(コンピュータの構造、シェルコマンド、viエディタの使い方などに詳しくなってしまう)、いつのまにか環境構築が目的(達成感や克服感)となってしまい、本来の目的であるLinuxで何をするかということから次第に遠ざかってしまい、時間ばかり消費してしまうのであまり深追いはしないほうがいいと思います。

理想的な組み合わせ:
・Ubuntu16.04
・NVIDIAドライバ nvidia-384(多分低すぎなければいい)
・CUDA 8.0(対応:Ubuntu16.04/14.04、Tensorflowなども対応)
・cuDNN 6.0/7.0

最終的な組み合わせ:(なぜか無事動いた)
・Ubuntu16.10/Windows10デュアルブート(gcc 6.2.0)
・NVIDIAドライバ nvidia-384
・CUDA 9.0(対応:Ubuntu17.04/16.04、未対応:Tensorflow/Pytorch)
・cuDNN 7.0.4 for CUDA 9.0
・Anaconda 4.3.30(cuda80/cudnn6.0.21/Tensorflow-gpu1.3.0)
・Pytorch (Linux/conda/Python3.5/CUDA8.0)

矛盾するけれどもAnacondaで解消?
NVIDIA製CUDA8.0だとUbuntu16.04のgccバージョン5(6未満)でなければならず、Ubuntu16.10にしてしまうとgcc6.2になってしまう。仮にgccを5へダウングレードしても、CUDA8.0をUbuntu16.10にインストールするとgcc6.2へアップグレードされてしまうので、やむを得ずCUDA9.0ならびにcuDNNもCUDA9.0用をインストール。とりあえず、CUDA9.0とcuDNN7.0のマニュアルにある動作確認では問題なし。
ちなみにTensorflowやPytorchはまだCUDA9.0には未対応。
Tensorflow1.5からCUDA9.0に対応するらしい。いちおうベータ版Tensorflow1.5はあるけれども、ソースをコンパイルしてインストールしなければならない。またベータ版PytorchであればCUDA9.0でも動くらしい
しかしながらAnacondaをインストールしてみると、仮想環境のおかげなのかCUDA8.0+cuDNN6.0対応のTensorflow-gpu1.3とPytorchのサンプルがきちんと動きました。もしかしたらUbuntu17.10(最新)でも動くかもしれないけれど、またインストールし直すのは大変なのでやめました。

Tensorflow-gpu/CNN/CIFAR10での実験:
ということで、CIFAR10のサンプルで試してみました。以下がGPU(GeForce GTX1060)で動かしてみた内容。右端の数値を見ると0.018〜0.019sec/batchとなっています。これはかなり高速。
ちなみに、MacBook Pro(GPUなし)のほうでも同じように動かしてみると、以下。
0.680sec/batch前後という結果。比較すると、GPUのほうが約36倍速いということになります。あまりに違うので、いままでMacBook Proを使っていたのが馬鹿馬鹿しく感じてしまいます。その他VAEのサンプルで試すと約6.5倍の速さでした。CNNのサンプルに関しては、cuDNNを使っているためか、かなり効果があるようです。特にエラーもでないし、このような歴然とした結果からおそらくGPUはきちんと機能しているはずです。

ネットで設定例がたくさん見つかるので、ここでは細かな内容は省きますが、手順を一通り書いておきます。

デュアルブート下準備:
・Windowsの「ディスクの管理」でパーティションを区切り約120GBをUbuntu用に確保
・USBメモリースティック(8GB)をFAT32フォーマット化
・Ubuntuをダウンロード
Rufusソフトをダウンロード
・Rufusを使ってUbuntuをUSBメモリースティックへLiveCDとして書き込む
・再起動しBIOS画面にする(起動中Deleteキー連打/違う機種だとF2キー連打)
・BIOS画面内でFast boot無効、USBメモリースティックを最優先に起動順序を変える
ハマりどころ:
Windows10のボリュームはすでに5個くらいに分割されており、Ubuntu用に充分な領域を確保できないけれども、後から変えることもできるはず。それほどこの段階では問題はない。

Ubuntu:
・USBメモリースティックからUbuntuが立ち上がったらWifiとつないでおく
・Ubuntuのインストール(使用言語、地域、ユーザ名、パスワードなどの設定)
・インストールされれば再起動
・また起動中にBIOS画面にしてPCにインストールしたUbuntuを最優先起動に設定する
・Ubuntuとして起動したら、Wifiなど基本事項を設定
ハマりどころ:
Ubuntu17.10が最新バージョンだけれども、CUDAには正式に対応していないためUbuntu16.04を選ぶのがいいとされる。しかし16.04(日本語版)をインストールしてみたところディスプレイ解像度変更不可、ネットがつながらないなどの問題発生。オリジナル版もフリーズしたり機能上の不具合が多くで断念。つぎに16.10を試してみると何とか動いた。さらに次の候補となる17.04もフリーズ、17.10はかろうじて動くがたまにフリーズする。16.10くらいしかまともに動かないため、やむを得ず16.10で以下の作業を進めることに。しかし気がかりなのは、CUDAが17.04か16.04にしか正式に対応していないという点。

NVIDIAドライバ:
NVIDIAサイトからドライバのダウンロード
・Nouveauの無効化
・Ubuntu上で仮想コンソールへ移動してドライバのインストール
・BIOS画面でセキュアブート無効にする
ドライバを入れた後(CUDA無し)、ターミナルでnvidia-smiを入力してこの画面が出ればOK(しかしなかなか出なかった)。

ハマりどころ:
ほとんどはUbuntuのターミナルからインストールするけれども、一旦GUI表示を無効にして仮想コンソールへ場所を移して、そこでドライバのインストールをするというややこしい手順。また、viでNouveau無効化ファイル作成するため、viの使い方も知らないといけない。セキュアブート無効を忘れるとログインループにハマったりGUI画面が表示されなくなったりします。後から気づいたけれども、セキュアブート無効にすればこのような面倒な手順は不要かもしれない。最初nvidia-375をインストールしていましたが、他のソフトを入れると最新のnvidia-384に引き上げられてしまうようです。結果的には問題なし。

CUDA:
NVIDIAサイトからインストーラのダウンロード
・CUDAのインストール
・パスの追加
ハマりどころ:
作業事態は単純だけれども、どのバージョンをインストールしたらいいのか迷う。最新はCUDA9.0だけれども、まだTensorflowやPytorchは対応していない。それではCUDA8.0にすればいいかというと、Ubuntu16.10のgccのバージョンと対応しなくなる。現状では他の環境やライブラリがまだCUDA8.0にしか対応していないため、CUDA9.0を使わないほうがいいみたい。CUDA8.0にとどまるなら、Ubuntuを17.04にアップグレードするという手もあるけれども、このMSI GS43VRは17.04でもフリーズしてしまう。かろうじてUbuntu17.10では動くのだけれども、一旦ここまでインストールしてしまうと17.10へ変えにくい。というわけで、使用するパソコン、ライブラリ、ドライバ、プラットフォームのそれぞれのバージョンがうまく噛み合わなくて選択が難しい。CUDAのバージョンに振り回される。
CUDAでつまづくようなら、NVIDIAサイトからダウンロードせずに、
sudo apt-get install nvidia-cuda-toolkit
でインストールしたほうがいいかもしれません。

cuDNN
・メール登録が必要
・CUDAのバージョンに合わせてNVIDIAサイトからダウンロード
・Ubuntuへインストール
ハマりどころ:
特に難しくはない。このライブラリを使うとかなり高速になるようです。tarファイル版は一気にダウンロードできるけれども、なぜかマニュアルにある動作確認用サンプルが含まれていない。3つあるdeb版なら3つ目がサンプルなのでいいかもしれない。

Anaconda
・pyenvを最初にインストール(こちらを参考にしました
・pyenvにパス通す
・Anacondaをインストール(Python3.6含む)
・tensorflow-gpu1.3をインストール(Anaconda内)
・pytorchをインストール(Anaconda内:pytorch/torchvision/cuda80)
・cudnnをインストール(Anaconda内)
*Anaconda経由(あるいはanaconda-navigator)で、tensorflow-gpu1.3、pytorch、cuda80、cudnn6.0をインストールできるのでかなり楽。Anaconda cloudに登録し、cloud上で必要なライブラリを探すのもいいと思います。場合によってはpython2.7もインストールして仮想環境をつくっておくといいらしい。
結果的には、まだ未対応のCUDA9.0とcuDNN7.0(CUDA9.0用)をNVIDIAからインストールしたにもかかわらず、Anacondaの仮想環境とpytorch/cuda80/cucnn6.0のおかげで無事動いたのかもしれない。

PyCharm(エディタ):
サイトから無料のcommunity版をダウンロード
・解凍したあと、pycharm-community-2017.2.4/binへ移動し、./pycharm.shで起動。
・Anacondaのパスとつなげておく(確かデフォルトでつながっていたような)
・エディタ内でターミナル使用、git pullも可能
・pytorchのdcganサンプルなどにあるコマンドラインオプション/引数なども登録可能
*例えば、
python main.py --batchSize 128 --cuda --ngpu 1
などのmain.pyのうしろにつける設定項目(こちらを参考に)。

まとめ:
・Linuxと使用するパソコンとの相性次第(ダメならWindowsで)
・BIOS画面でFast BootとSecure Bootを必ずオフにする
・Anacondaを使う
前半は先が見えずかなり苦戦し、UbuntuがだめならWindows10にインストールするしかないとも考えていました。海外国内問わずネット上にはなかなか動かない例もたくさんあり、予想以上に面倒でした。Linux固有のトラブルと、ハード、ソフトそれぞれの対応が微妙にずれており、しかも今後リリースされるライブラリも徐々にバージョンアップしていくので、またインストールし直す時がくるので面倒です。Ubuntuは年2回(4月と10月)にバージョンアップするらしく、次回18.04は2018年4月という意味でLTS(Long Term Support/5年間)になる予定。
しかしながら、一度設定できればGPUのパワーはすごい。MacBook Proもそこそこ速いのではないかと思っていましたが、そんなことはありませんでした。やはりGPU搭載のパソコンは圧倒的に作業時間が短縮されていいと思います。特にCNNなどの層が厚いアルゴリズムでは効果てきめんという感じです。

Linuxはトラブルが多いと思うのですが(ドラブルがあれば自分で直すという姿勢からか)、一旦動き出せば、機能も見た目もシンプルだし元々軽快なためか計算速度も速いらしいでの、できるだけWindowsを使いたくありませんでした。WindowsはしばらくTensorflowにも対応しておらず、Pytorchにおいては公式ではLinuxとMac版だけ(WIndows版はAnacondaからインストール可能)。MicrosoftがCNTKをリリースしたものの、Windowsはやや一歩遅れというのも気になります。

また、DockerやAWSなどのクラウドへUbuntu16.04をインストールし(必要に応じてその他のライブラリも)、GPUで計算させるという方法もあるようです。どうしても時間を短縮したいという場合は有料(数百円)にはなるけれどもいいかもしれません。コーディングは普通のノートパソコンでやって、計算のときはクラウド利用するというのが一番スマートな方法(ものを持ちすぎない)だと思います。

Tensorflow1.4でKerasが取り込まれ、さらにはEager(まだpre-alpha版)も登場し(tf.learnやtf-slimはどうなってしまったのか)、まだまだ変化がありすぎる状況です。現在はCUDA8.0とcuDNN6.0/7.0が主流だと思うのですが、数ヶ月以内ですぐにCUDA9.0に対応してしまうと思います。半年後にはUbuntu18.04LTSがリリースされ、そのころにはまた新たなライブラリや環境が登場していると思うのできりがないという感じです。

2017年11月12日日曜日

Deep Learning用GPUノートパソコン

Deep Learningで学習する際に、現在使用しているMacbook Pro(2014年製)だとCPU計算のため数十時間とか普通にかかってしまいます。あまりにも効率が悪いので、GPU搭載のパソコンの必要性が高くなってきました。GPUパソコンを新規購入せずにクラウド(有料)で計算させる方法もありますが、外付けGPUという手段もあるようです。性能的な面から言えばデスクトップ型のGPUパソコンが一番効率良さそうですが、個人的には持ち歩きをするために、幾分スペックが落ちてもGPUノート型(ゲーミングノートパソコン)がいいかなと。

外付けGPU:
最近は、MacBookでも外付けできるGPUがあるらしい。

こちらはグラフィックボードは別売り。

GIGABYTE ビデオカード GTX1070搭載 外付けVGA BOX GV-N1070IXEB-8GD
Posted with Amakuri at 2017.11.10
日本ギガバイト
販売価格 ¥84,812
こちらはGeForce GTX1070も含まれた値段。Macで確実に動くかどうかは分からないけれども、10万円以下で高速になるのであればかなり助かります。

GPU比較:
ということで次はGPUの比較。最近のNVIDEAのGPUだと、
GeForce GTX 1080Ti : 約10万円(922)
GeForce GTX 1080 :約7万円(725)
GeForce GTX 1070 :約5万円(602)
GeForce GTX 1060 :約3万円(440)
当然数字が大きいほどパワフル。()内の数字はドスパラによるベンチマーク値。主にグラフィック処理に関する数値だと思うので、Deep Learningにおける並列計算でのベンチマークとは少し違うと思いますが一応目安として。
一番下のGTX 1060は比較的安価ですが、それでも現在のMacBookよりは遥かに速いはずです。個人的にはGTX1070が無難かなと思うので、外付けなら合計で8万円前後となりそうです。しかしながら外付けの場合は、ThunderBolt経由となるのでスピードがワンランク落ちるらしい。
ということから、GPUを外付けするよりも新たにGPU付きパソコンを購入したほうがよさそう(現在のMacBookも古くなってきたし)。

デスクトップかノートか:
新規購入となるとデスクトップ型かノート型かということになります。当然デスクトップ型のほうがコストパフォーマンスは高くなりますが、現在のMacBookのかわりに使うことにもなるので、ノートのほうが個人的には好ましい。ということで、GPU付きノートパソコンを探すことに。

GPU付きノートパソコン:
GeForce GTX 1070搭載ノートPCとなると20〜25万円のゲーミングノート。値段的には新しいMacBook Proとあまりかわらないけれども画面サイズが15型になってしまう。現在のMacBook Proは13.3型で非常にコンパクトなのですが、15型になると持ち運びするには大きすぎるし重量もあります。

14型以下のGPUノートパソコン:
ゲーミングノートパソコンのほとんどが15型以上となる中で、数少ないながらも14型以下もあるようです。しかし、そのほとんどがGeForce GTX 1060以下となってしまいます。とはいっても普通のMacBook Proよりは断然速い。一つ前もMacBook Proを使っており、現在もMacBook Pro、次もMacBook Proを購入することになると思っていましたが、せっかくなのでGPU付きに方向を変えてみようかと。そうすると以下の3つが候補。

Dell Alienware 13(194,378円/税込み)、画面13.3インチ、330x269x24mm、2.6kg
MSI GS43VR (195,000円/税込み)、画面14インチ、345x245x22.8mm、1.8kg
Razer Blade 14(234,144円/税込み)、画面14インチ、345x235x17.9mm、1.86kg

追記:
上記は2017年製の型番であり、2018年製であれば
MSI GS65 Stealth Thin 8RE-005JP(Arkで233,800円)、357.7×247.7×17.9mm、1.88kg
がいいかもしれません。


それぞれ以下のようなスペックでの比較にしてみました。
画面サイズ:14型未満
RAM:16GB
HD:SSD256GB
GPU:GeForce GTX 1060
*GeForce GTX 1060未満のゲーミングノートもあるのですが、候補外にしてしまいました。

Alienware 13は、Dellとは言え独立したブランドらしく、ほとんどDellらしさはありません。見た目的にはかっこいいゲーミングノートという感じ。タッチパッド部分が光るというのは珍しいけれども、左右クリックボタンがついているのが、個人的には邪魔という感じ。画面が13.3インチで一番コンパクトなのですが、なぜか重い。ゴツい排気口もあって頼もしそう。そのため少し縦長ですが、元々コンパクトなのでそれほど大きさは気にならないかもしれません。41,400円上乗せすれば、MacBook ProのRetinaディスプレイと同等の2560x1440の高解像度+タッチパネルに変更できるようです。ゲーム目的ではないのでそこまでは必要ないと思います。秋葉原にショールームもありサポート窓口になってくれるらしく、国内でもサービス面ではなんとか大丈夫そうです。
MSI GS43は、見た目はいかにもゲーミングという感じですが、中身的にはバランスがとれていそうです。排気もけっこうこだわっているようです。故障やサービス面については秋葉原のArkが窓口になるようです。通常ノートパソコンでは後からメモリ増設ができないものが多いのですが、MSIの場合Arkに持っていけば対応してくれるようです。重量も1.8kgなので、ゲーミングノートのなかでも軽量な方です。アメリカでも人気あるようです。それと保険が最初から2年ついています。

Razer Blade 14は、MacBook Proを真っ黒にしたようなシンプルでスタイリッシュな外観ですが、完全に外国製品という感じで取り扱っているところも少なく、故障の際も部品取り寄せなど面倒らしい。値段もやや高価。厚さも薄くスペック的にも悪くはないのですが、日本に窓口ができれば値段を引き下げることも可能だろうし、もう少し安心して購入できそうです。付属のACアダプターも小型化の工夫がされているようです。

まとめ:
おそらく現在使用しているパソコンと比較した場合に、それぞれの印象が異なると思います。個人的には、Alienware 13はサイズはいいのですが重いというのがひっかかります(現在13.3インチMacBook Proが重量1.57kgなので)。
外観においてはMSI GS43が一番かっこわるいのですが、2年保証付きで、後からメモリ増設可能であったり、サービス/サポート面や機能面においては一番優れていそう。
Razer Blade 14は確かに魅力的ですが、国内サポート面での不安定さとやや高価であるという部分がひっかかります。数万円高価になるなら、他の機種においてメモリを16GBから32GBに取り替えたほうがよさそうとも考えてしまいます。
ゲームをするわけではないので、やはり総合的に見るとMSI GS43がよさげです。見た目さえ我慢すればいいという感じです。

通常、デスクトップ型にGTX 1070を積むのがコストパフォーマンスに優れるのだと思いますが、現在使用しているMacBook Pro(13.3型)の代わりにもなるものとしてポータブルなものを選ぶと14型のGTX 1060ゲーミングノートパソコンとなってしまいます。そのため性能的な意味においては妥協しなければならないのですが、それでもMacBook Proよりは遥かに速いので不満は残らないでしょう。

AnacondaでPythonを管理してPytorchを使おうと考えているので、そうするとWindowsだとやや不都合があるため、OSはLinux/Ubuntuにしたほうがよさそうです。

追記:
最近はGoogle Colab(無料GPU/TPUクラウド)を使えば高速演算が可能なので、必ずしもGPU付きコンピュータが必要ではなくなったかもしれません。

関連:
GPU:GTX1060で再度DCGAN(CelebA)を試してみる
Google Colabの無料GPUで強化学習(Keras-RL)を試す


人気の投稿