cupy のメモリアロケータ

cupy の中の人の投稿によると、cupy.cuda.set_allocator() で
メモリプールを使い回すようにすると高速になると書いてある。

実際そのとおりなのだが、投稿にある test() を2回連続で
回すと、アロケータをセットした方が圧倒的に遅くなった。
ソースコードを見ていないが、どこかに実行結果をキャッシュしている?

numpy: 0:00:00.004890 sec
cupy: 0:00:00.000179 sec
cupy(memory pool): 0:00:00.000456 sec

なお、記事では触れていないが、いわいる「バーンイン」を
行わないで GPU 回りのメソッドを呼ぶと初期化設定のため、
最初の1回だけは非常に時間がかかることに注意。

使用したテストコードは以下の通り。

# -*- coding: utf-8 -*-
import numpy as np
import cupy as cp
import datetime

def test(xp):
    x = xp.arange(1000000).reshape(1000, -1)
    return x.T * 2

def test_with_time(title, xp):
    t1 = datetime.datetime.now()
    test(xp)
    t2 = datetime.datetime.now()
    print(title, t2 - t1, "sec")

# バーンイン
#cp.arange(1)
test(cp)
 
test_with_time("numpy:", np)
test_with_time("cupy:", cp)
cp.cuda.set_allocator(cp.cuda.MemoryPool().malloc)
test_with_time("cupy(memory pool):", cp)

 

久々にスクリプトエンジンのコードを書く

半年ぶりにスクリプトの実行エンジンのコードを書いた。

lex, yacc に相当するところは既に書き終えており、式の評価以外の実行エンジンも書いてあるので、残るは数式の評価である。

しかし半年もたってしまうとどういう構造だったかとか、このメンバーが何を意図していたかとかが分からなくなってしまい、困った。

何とか +, 変数代入、ハッシュが書けたので、後は淡々と定義した演算子の実体を定義することになる。この作業、本当に地道で根気のいる作業なのです。

PC 見積もり代金 530万円也

hp のサイトで、以下のスペックで PC の見積もりを見てみた。

  • CPU: Xeon 2620v4 2.1G 8コア×2
  • RAM: 512GB
  • HDD: 2TB ×2
  • GPU: P6000 ×2
  • その他もろもろ(Blue-ray, GbE追加など)

結果は標題にある通り、530万円余りということになった。
(CPU には正直あまり期待していないので、必要最小限のオプションになっています。)

ちなみにさくらインターネットの高火力シリーズでP100×1を1年間の見積もりを計算すると363万円(ただしメモリ1TB)、マウスコンピュータのX299ベース、128GBのPCを4台見積もると440万円くらいになるので、電源事情を考えれば、2年以上使うのだったら hp から購入するのは悪くない選択肢に思える。
(Ubuntu のホームページを見ると Z840 筐体はサポートされているようだ)

納期が8週間かかりそうなのと、11月下旬に新しい筐体が出るようなので、今回は購入を見送ります。というか今使っている PC を取りあえずフルに使えと言うことなんですが。

Amazon の審査に落ちた

単に書籍紹介時にリンクを張りたいというだけの理由で、Amazon のアフィリエイトに応募したが、あえなく落選してしまった。

理由はこのサイトに載っているコンテンツが少なすぎるので、もう少し拡充してから登録してください、というものだった。

とは言え、どこまで拡充すればよしとするのか審査基準が書いてない。

まあ、確かにトップページとこのブログしか置いていないようなシンプルすぎるサイトなので、目的が分からないというのは分からないでもないですが。

トップサイトを拡充したらもう1度挑戦してみることにしよう。

高騰するPC

スマホシフトによって、pc用のDRAMが高騰していると言う。

確かに、パソコン販売サイトを見ても、徐々に価格が上がってきている感じだ。

cpuやgpuは高機能化、高価格化の方向だから、組み上げた時の値段が上がってしまうのだろう。

どこかに書いたが、私が実行しようとしているシミュレーションはメインメモリが1TB程度必要だ。

5年後には手が届く価格になるかと思ったが、ムーアの法則も成り立たなくなりそうだし、年金生活に突入したらますます遠のいてしまうのだろうか。

残念。

 

最近プログラム書いてない…

引っ越してこの方、まともなプログラムを書いていない。

仕事で疲れ切って、趣味のコーディングまで手が回らないためなのだが。

でも本は買いまくっているので、家に溢れる一方。大枚をはたいて買ったメインメモリ 128GB 10コア PC はほこりをかぶるだけ。(今なら GB110 が欲しいところですな)

うーむ、何とかせねば。腕が鈍ってしまうぞ。