iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

GPUサーバー到来

iPXの堀田です。

最近、弊社ではディープラーニングに力を入れており、
ディープラーニング関連の案件が増えてきています。

ディープラーニングというと囲碁で世界的な棋士に勝利したり、画像から自動で人物を抜き出したりといったような何でもできるというようなイメージがあるかもしれませんが、実際に取り組んでみるとそこまで万能でもなかったり、色々と試行錯誤が必要だったりとなかなか苦労しています…

さて、弊社ではディープラーニングの学習を効率よく行うため、学習用GPUサーバーを自社導入しました。
某社で取り扱っているGeForce GTX 1080 Tiを4基搭載したブレードサーバーです。
今回の記事のテーマはこのGPUサーバーのセットアップを行ったときのことについて書こうと思います。

構成

バージョンですが、DIGITSがTensorflow 1.2.1にしか対応していない→必然的にCUDA 8.0 & cuDNN5固定ということに。
Tensorflowってバージョンごとに対応しているCUDAとcuDNNのバージョンが固定なんですね…
(Tensorflow 1.6 & CUDA 9.0 & cuDNN7で一度試してみましたが、Modelの作成でどうしてもエラーになってしまいました)

手順

  1. apt update & apt upgradeの実行
  2. NVIDIAドライバーを最新版に更新
  3. CUDAのインストール
  4. Dockerのインストール
  5. ログインユーザーをDockerグループに追加
  6. NVDockerのインストール
  7. DIGITSコンテナの作成

細かい手順は検索して出てくるそのままなので省きます。
7のコンテナ作成のコマンドだけ少し変えてあるので備忘録として掲載しておきます。

docker run --runtime=nvidia --name digits5 -p 5005:5000 -p 6006:6006 -v /home/ipx/data:/data -v /home/ipx/jobs:/jobs nvidia/digits:5.0

結果

f:id:ipx-writer:20180326200928p:plain:w300
(*´▽`*)

余談

このGPUサーバーですが、排熱がうまく行っていない構造になっているらしく複数GPUで同時に学習を実行するとハングするため、一旦代理店に送り返すことになりました。
つまりもう一度セットアップをやり直す必要があります…

1/6ですらままならぬもの

年を取るにつれて、いろいろなものに対する閾値が徐々に低下して生きている感じがしている、阿部です。
少なくとも負の感情に対する閾値は下げたくないところではあるのですが、中々にままならないものです。
特に花粉に対する閾値だけは下がってほしくないんですが・・・

さて、今回は、誰でも一度は触ったことがある、お手軽乱数発生器、サイコロについてお話させていただければと思います。

続きを読む

日刊工業新聞社にて、MBDセミナーを開催しました

EPLUの加藤です。

2月22日(木)に、日刊工業新聞社の主催でMBDの入門者向けのセミナーを開催しました。

f:id:ipx-writer:20180302125100j:plain

今回のセミナーでは、

  • モデルベース開発(MBD)とはなにか?
  • そもそもモデルとはなにか?
  • MBDで期待される効果は何か?
  • モデリング言語の紹介
  • どのように開発プロセスにMBDを適用したら良いのか?

といった内容で、私達の経験談を踏まえて紹介しました。

これまでに同様のセミナーを開催してきましたが、今回は強い興味を持っている受講者の方が多く、質疑応答では多くの質問を頂きました。

頂いたアンケートのご意見を元に、今後はより分かり易い内容にしていきたいと考えています。

セミナーの内容が、今後の業務のヒントになれば幸いです。

ご参加頂き、ありがとうございました。

 

昔作ったプログラムを見て

お久しぶりです、今回のブログ担当のシロハです。
年末に実家に帰った際にPCのデータを見ていて、
昔作った七ならべのプログラムを見つけたので、
それを見ながら考えたことについて書いていこうと思います。

作ったきっかけとか

このプログラム自体はまだ大学生の時に作成したもので、
VisualStudio+DXライブラリを用いて、C言語で作成しています。
作ったきっかけは、大学のゼミがプログラム関連の所で、C++について触る機会があり
プログラムをそれぞれ作ることになりました。
その時に作ったのが七ならべのプログラムです。

そのプログラムのスクリーンショットが下の画像です
f:id:ipx-writer:20180127220537p:plain

その時は自分がルールを知っている何かを作ろうと考えて、
トランプなんかわかりやすいのではないか?みたいなノリで作り始めました。

処理とかフローとか

七ならべはそれぞれの手番や中間処理がありますが、それぞれの処理をブロックとして考えて作っています。
プログラムのフローは、

1:(プレイヤーの手番)トランプを選択する⇒2へ or 手番をパスする⇒3へ
2:(中間処理)選択したトランプが場に出す条件を満たしている: yes⇒3へ, no⇒1へ
3:(相手の手番)場に出せるトランプを探索する ⇒ 4へ
4:(中間処理)場に出せるトランプを見つけたら場に出す。なければパスする ⇒ 1へ

こんな雰囲気フローでプログラムを作ってます。
といっても、フローを紙に書き起こしてすらいませんが。
大学で、しかも半分趣味で作ったようなプログラムで、ちゃんとした開発でもありませんでしたので。
ただ、社会に出てからはそんな適当だとだめですね。
ちゃんと仕様決めて、フロー起こして、ってやらないと・・できてるかどうかは別として

ただ、七ならべのルールや処理が分かっている以上
'何を作ればよいか' が分かっているから適当でも作れたのだと思います。

作り方に関して

コードは上のそれぞれのフローをブロックごとに記述し、それぞれを独立させています。
その結果どうなるかといえば、一つ一つのブロックごとにデバッグが可能になります。
バグが出た時にバグを取り除くことは、プログラムが大規模になるほど難しいと思います。
ですが、それぞれをブロック化して作っていけば、
それぞれのブロックごとにデバッグや動作確認できるようになります。
一番良いのは、それぞれのブロックを作る⇒動作確認⇒問題なければ次のブロックの作成⇒・・・
といった流れですが。


こういった作り方は今でも必要だと思ってます。
ただ、作るものの規模が大きくなると検証するブロックの数が多く、
それぞれの検証にも時間がかかってしまいます。
その結果、動作確認がおろそかになり・・・
そして組み合わせた結果、想定通りに動かなかったり、
バグがあったりするといわゆる手戻りが発生します。
最近業務で同じようなことが起きたので、やはり一つ一つ動作確認するのは大事だと改めて感じます。

そういえば、この時に初めて構造体に手を出しました。
それぞれのトランプの数字・絵柄(対応する画像)・トランプを出せる条件・
トランプを表示する場所(画像表示するときのX・Y座標)
などトランプの持っているそれぞれの情報、
あるいはプログラムの都合で持たせたい情報を構造体で持たせる形にしています。
トランプの情報をどうやって管理しよう、と考えて調べていたら '構造体' が出てきて
これ使えるかも、と思ったのが懐かしい


プログラム以外のこと

トランプの画像はネットから52枚組のトランプの画像を探してきて、
それをまたフリーのGimpという画像編集ソフトを使って1枚1枚切り分けてから使用してます。
七ならべのプログラムを作る少し前に別件でGimpを触ったことがあったので、迷うことなく選択。
有償の画像編集ソフトがどんな感じなのかはよく知りませんが、よく知らない人からしたら
Gimpは便利な画像編集ソフト、って感じです。

終わりに

今思えば、背景が真っ黒なのはさみしいし、手札の順番も整理していない
(上のスクショでも絵柄、数字の順番がばらばら)。
当時そこまでやろうと思ってなかったとはいえ、これはひどい・・
ただ、自分のなかで作ろうとしているもののイメージを固めて、
それをプログラムという形で書き起こすのは楽しいというのは覚えてます。
あと、本文中で触れていませんでしたが、筆者は大学は数学科でした。
そのため構造体も学んだようなそうでないような・・だったり、
クラスも学んでいない(はず)な状態で作ってます。
そんな感じで筆者の少し昔を思い出しつつ、自分の作ったものの良いところと悪いところを見直そうという回でした。

2018年もiPXをよろしくお願いします

こんにちは、iPXの須山です。

新年あけましておめでとうございます

2018年になりましたね。
本年もiPXをよろしくお願いします。
なお、2018年のiPXは 1月8日より平常通り営業いたします。

皆さんはどのような 新年を迎えたのでしょうか?
(ちなみに私は 実家に帰省し、地元で新年を迎えました。)

Automotive World

昨年2017年 iPXとしましては、本社事務所の移転等があった年でした。

2018年もiPXでは いろいろな事が予定されていますが
弊社として 年明けまず大きなイベントとしましては、
東京ビッグサイトにて 今月17日より行われるAutomotive Worldへの
出展がございます。
社内では、鋭意出展準備中です。

18日には 東-Fセミナー会場にて、セミナーも開催予定です。
(内容は ADASシステム開発におけるDeepLearning活用事例を
 弊社の開発事例を交えて紹介予定です)
是非いらしてください。

2018年もiPXをよろしくお願いします。

EMCのお勉強会

ご無沙汰しております。
10月から住処を北関東にし、やっとこ慣れ始めたishizawaです。
今更ながら去年、車を買って良かったなぁと実感しております。
ただ、こちらは東京と違い路面が凍結するとのことでスタッドレスタイヤを購入…。
思っていたよりお金が飛んでゆきました…(´・ω・`)

なんだかんだ運転が好きなので日光行ったりと楽しんでおります。
今年こそはスタッドレスタイヤも買ったのでスノボーとやらを楽しんでみたい所存です。

さて、今回は先日弊社内部でEMC(電気)の勉強会を行いましたゆえざっくりここでも書いてみようかなと思います。

続きを読む