さまこばのブログ

興味のあること、いろいろメモしていきます

UCCのボトルコヒーにこっそり甘味料が入っていた

最近暑くなってきて、そろそろ冷たいボトルコヒーでも飲もうかと、去年買っていたUCCのボトルコヒーを買ってみました。買ったのは「UCC 職人の珈琲 ミルクに最適」というので、2017年プレスリリース時 (「UCC 職人の珈琲」ブランドに、ミルク割専用製品が新登場!)

「深炒りコーヒーを使用し、砂糖の甘みとコクでミルクとの相性を追求。甘味料不使用」

ということで、人工甘味料が入っていないから買っていました。人口甘味料は体に悪いとかそういうのじゃなくて、単純にあんまり味が好きじゃなくて、特に「スクラロース」がおいしくないので今まで避けてきました。

ですが、今日買ったあと、ふと成分表を見てみると「甘味料(アセスルファムKスクラロース)」と書いてあるではないかと。そーいうのはやめてほしいと思うわけですが、不満の行き先はとくにないので、とりあえずブログに書いた次第です。

さて、人工甘味料が入っていないボトルコヒーを探してみたところ、

というのが2019年に復活していて、人工甘味料ナシでした。

このほか

人工甘味料ナシなので、今度探してみようと思います。

FP32⇒FP16は2倍か?4倍か?

ポスト京の名前が「富岳(ふがく)」に決まったようで、スペックもだいぶん明らかになってきました。また、昨年PFNが独自のディープラーニング専用チップ(MN-Core)を開発すると発表しました。富岳は汎用計算機で、今回ディープラーニングの計算にも対応しているのに対し、MN-Coreはディープラーニング専用で作られています。ここで、現在ディープラーニングに使われているNVIDIAGPUとしてTesla P100(話の都合上 Tensor Coreが入っていないP100にしています)を加えて、単体のチップの性能について見てみたいと思います。

Tesla P100 富岳CPU MN-Core
倍精度(TFLOPS) 4.7 2.7 32.8
単精度(TFLOPS) 9.3 5.4 131
半精度(TFLOPS) 18.7 10.8 524

チップの大きさの違いはあるはずで、単純にMN-Coreが早いというのは意味はないですが、ここで注目したいのは、倍精度⇒単精度、 単精度⇒半精度の比率です。Tesla P100、富岳の方はそれぞれ2倍になっていますが、MN-Coreはそれぞれ4倍になっています。

ビット数を半分にすると、計算速度は2倍なのか?それとも4倍なのか?
ちょっと考えてみました。

※CPU・ハードに関して素人なので大きく間違っているかもしれません。

話を簡単にするために整数4bitのaとbをかけてy = a×b することについて考えてみたいと思います。一般にかけ算というのは足し算よりもはるかに大変です。小学校でならった筆算でも、下の位から「1桁ずつ」かけて、最後に全部足すことで計算しました。コンピュータの中でも同じように掛け算は「1桁ずつ」かける必要があるはずで、桁が大きくなればなるほど、計算量は増えるはずです。

imgae

なので上の図のように、4bit⇒8bit 演算量が約4倍増えると考えられます。

4倍の演算量を実行するには演算器を4倍に増やすか、同じ演算器を4回使い回すがどちらかになりますが、使い回すと遅くなるので、演算器が4倍増える ⇒トランジスタ数が4倍増えることになるはずです。

とすると、ビット数が半分になると演算量は1/4になるので、同じ演算器の数だと4倍並列計算できるはずでFP32⇒FP16は4倍であってもいいような気きがしますが、そうならないのはレジスタ側のサイズが関係してくるのかもしれません。

imgae

上の図のように、4bit⇒8bitの場合、入力(a,b)と出力(y)の値を入れておくレジスタの容量は4倍ではなく、2倍となるはずです。8bit×1セット ⇒ 4bit×2セットの計算はレジスタ数は変わらず、演算量が減るだけなので改造は簡単ですが、8bit×1セット ⇒ 4bit×4セットの計算はレジスタを増やす改造が必要になります。

なので、ビット数が半分にしたとき富岳やTeslaの計算速度が2倍の速度になっているのは、改造が簡単だからかもしれません。

富岳の方は汎用スパコンのため倍精度がメインになるので、改造の少ない2倍で設計したのに対し、MN-Coreの方はディープラーニング専用のため速度が得られる半精度が重要になってくるので、4倍で設計したと考えられます。

ちなみに整数型と浮動小数点型では違いますが、浮動小数点では指数側は足せばいいだけなので、あんまり計算負荷は大きくなく、仮数部のビット数が重要になるはずです。また、例えば単精度と半精度の演算器は「共用」できるかもわかりません。このほか、Tensor CoreやTPUなどでは、行列の積なので乗算と加算を同時行うことや、同じ変数を何回か別の変数にかけるので、レジスタの数を節約できるなどがあると思いますが、不明な点が多くてよくわかりません。

そもそも、CPU自体 4⇒8⇒16⇒32⇒64bit と進化してきたわけで、この辺の詳しい人から言わせればあたり前、もしくは間違ったこと言っているような気がしますが、ディープラーニングから入って逆にたどっているとよくわかない部分だったりします。

ちなみに富岳のスパコンは、2021年に共用予定で倍精度で400ペタFLOPS(公開用の値、実はもっとはやい)とのことです。京が10ペタFLOPSだったのでその40倍になります。また、MN-Coreのクラスタは2020年春に稼働予定で、半精度で2エクサFLOPSの予定です。単純計算するとMN-Coreは倍精度で 2000÷16 = 125ペタFLOPSになり、富岳は半精度だと0.4 × 4 = 1.6エクサFLOPSになります。スパコンクラスタの違いはあり単純比較はできませんが、富岳の方が規模は大きく、倍精度では高速に計算できるはずです。しかしながら、ディープラーニングに特化した結果、半精度だとMN-Coreの方が高速となるのかもしれません。

富岳スパコン MN-Coreクラスタ
稼働時期 2021年 2020年春
倍精度(ペタFLOPS) 400 125
単精度(ペタFLOPS) 800 500
半精度(エクサFLOPS) 1.6 2

プレミアム商品券の対象者は実は広い?

 今日の地元の新聞にプレミアム商品券の制度案が書いてあって、もともと0-2歳児と低所得「世帯」だけ対象かと思っていましたが、どうも低所得「者」も含まれているみたいな記事でした。

 記事によると今回の低所得「者」は住民税が非課税である人が対象のようで、働いていない子供は当然非課税なわけで、それが0-2歳児だと2倍の権利があるみたいなようでした。これだと、専業主婦で収入がなければ非課税者として対象になるはずです。

 結構マニアックな部分で、対象者は少ないと思いますが、住民税に配当の申告不要制度を使うと住民税が増えない裏技が最近使えるようになったりするので、確定申告のこの時期、結構重要な部分な気がします。

 とはいえ、現時点で、ネットの新聞記事を探してもなかなか住民税の非課税「者」が対象と書いてあるものが出てこなくて、なにか間違っているのかもしれません。