GPUは、宝石のダイヤモンドの切り出しや研磨という製造工程を革新したという興味深い発表が、3月に開催されたNVIDIAのGTC 2013で行われた。

ダイヤモンドの原石は、不純物が含まれていたり、中に亀裂や穴があったりする。宝石のダイヤモンド(ダイヤ)にするには、これらを避けて、品質の良い部分を切り出しし、研磨する必要がある。しかし、1つ1つ形状や不純物などの欠陥の位置が異なる原石から、出来るだけ大きく、無駄が少なくなるようにダイヤを作り出すのは容易ではない。

1990年代以前は、熟練した職人がルーペで原石を調べ、カットのやり方を考えていたが、これでは1日に5個程度のダイヤしか作れなかった。1990年代に入ってCPUを使ってこの過程を高速化することが始まり、2000年代に入るとGPUの適用が始まり、現在では1日に150個のダイヤが作れ、同時に歩留りや精度も改善されているという。

ダイヤの製造速度はCPU、そしてGPUの適用で大幅に高速化された。(出典:この記事のすべてのスライドはGTC 2013でのGPUs revolutionizing Diamond Industryの発表資料より抜粋)

GPUを使うダイヤの製造過程は次の図のようになっている。

ダイヤの製造過程。まず、スキャナで原石の形状や欠陥の位置や大きさを読み取り、3Dの情報に変換する。そして、どのようにカットすると、どのような品質のダイヤがどれだけとれるか計算し、その結果に基づいて切り出しと研磨を行う

最初の過程は、原石を専用のスキャナに入れ、さまざまな角度から2Dのイメージを取得する。そして、それらのデータをもとに3Dのデータに変換する。このデータには原石の形状だけでなく、内部の欠陥などの位置や大きさの正確な情報が含まれている。

原石をスキャンし、多くの角度から2Dイメージを取得し、それらのデータから原石の形状、欠陥の位置などの3D情報を作成する

この過程ではCUDAのFFTやDWTライブラリを使い、繰り返しでイメージの品質を上げる。この過程はGTX 560 GPUで15~20分で、これはCPUより2~3倍速い

この過程ではFFT(Fast Fourier Transform)やDWT(Discrete Wavelet Transform)を使い、繰り返しでイメージの品質を高めていく。この計算にはGTX 560 GPUで15~20分を必要とし、これはCPUでやるより2~3倍速いという。

ダイヤモンド原石の3D情報が得られると、グラフィックワークステーションを使って、どのように切り出しを行うかを検討する。

GPUのレンダリング機能をフル活用し、3Dの半透明表示で欠陥も表示して、どこからどのようなダイヤを切り出すかを検討し、レイトレーシングでカットに対する光の反射を検討する

この図では、3個のダイヤの切り出しが表示されている。ダイヤの価格は小さなダイヤ2個より2倍の重さの大きなダイヤ1個の方が圧倒的に高いので、大きなダイヤを切り出すことが重要であるが、透明度や色なども価格を左右するので、どのようなダイヤを何個切り出すかが重要と思われる。しかし、そのあたりをどのように決めるのかはこの発表では、触れられなかった。