SlideShare a Scribd company logo
1 of 31
Download to read offline
『ストラりストラップのプログラミング入門』
   で語られなかったいく぀かのこず
       Programming

                     高橋 晶(Akira Takahashi)
                        id:faith_and_brave
                                @cpp_akira

          わんくた東京勉匷䌚 2011/08/27(土)
動機
C++の始祖Bjarne Stroustrupによる名著『Programming』。
この本では「プログラミングずは䜕か」ずいうずころから始たり、幅
広い話題に぀いお広く掘り䞋げお解説されおいる。

この発衚では、『Programming』で扱われなかったいく぀かの重
芁なプログラミングの分野に぀いお解説しおいきたす。
お題
•   䞊列凊理
•   ネットワヌク
•   コンピュヌタビゞョン
•   メタプログラミング
Chapter 1
            䞊列凊理
       Parallel Processing
タダ飯の時間はずっくに終わっおる

• 昔々、そんなに昔ではないけれど、
  遅いプログラムを組んでも、ムヌアの法則によっおコン
  ピュヌタが速くなるのを埅っおいればいい時代がありたした。

• ムヌアの法則に限界が芋えお、コンピュヌタが単玔には速く
  ならなくなった時代が到来したずき
    「The Free Lunch is Over(タダ飯の時間は終わりだ)」
  ずいう宣蚀がなされ、䞊列プログラミングの時代がやっおきた
  した。
䞊行ず䞊列

シングルスレッドで動かすプログラムは単玔にはこれ以䞊速く
ならない。そこでずられた2぀のアプロヌチ

• スレッドやプロセスによる擬䌌的な耇数同時凊理
• 耇数CPUによる完党な耇数同時凊理

前者を䞊行コンピュヌティング(Concurrent Computing)
埌者を䞊列コンピュヌティング(Parallel Computing)
ず呌び、䞡方合わせお䞊列コンピュヌティングず呌ぶ堎合もある。
(䞊行は、実行環境によっお䞊列になり埗る。)
䞊行ず䞊列 – 䞊行コンピュヌティング

スレッド/プロセスによる䞊行コンピュヌティングは、1぀のCPUで
耇数の凊理を同時に行う。
1぀のCPUの性胜を分割しお耇数の操䜜を行うため、それぞれ
の凊理性胜は䜎䞋する。
 // 関数fず関数gを同時に動かす
 thread t1(f);
 thread t2(g);

 


 // 終わるたで埅぀
 t1.join();
 t2.join();
䞊行ず䞊列 - 䞊列コンピュヌティング

䞊列コンピュヌティングは、耇数CPUによっお同時に耇数凊理を
行う。これはCPUのコア数 (などのハヌドりェア䞊行性)分だけ真
に同時に動かすこずができる。

 // CPUの個数分、コンテナvの各芁玠に察しお
 // 関数fを同時に適甚しおいく
 parallel_for_each(v, f);
䞊列プログラミングの難しさ
•   䞊列プログラミングでは、耇数のタスクから同じ倉数にアクセスする堎合
    に問題が起こる。
    これは原因の远いにくいバグを生み出しやすい。
    (ミュヌテックスず呌ばれる仕組みによっお、同時に1人しかアクセスできな
    いようロックするこずができるが、デッドロックや管理の耇雑化などで問題
    が起き埗る)
•   独立したタスクになるよう匷く意識しお蚭蚈する必芁がある。

    static int x = 0;

    void f() { 
 x = 1; }
    void g() { 
 x = 2; }

    thread t1(f);
    thread t2(g);

    // xの倀はどうなるだろう
䞊列プログラミングの抜象化

䞊列プログラミングの難しさに察凊するため、倧きく2぀の抜象
化モデルが登堎した。

•アクタヌモデル
メッセヌゞパッシングによっお䞊行プログラミングの安党地垯を
提䟛する。

•STM(Software Transactional Memory)
トランザクションによっお競合を怜知する。

これらは、珟代の倚くの蚀語で暙準、もしくはサヌドパヌティラむ
ブラリによっお提䟛され始めおいる。
関数型プログラミング

䞊列プログラミングが難しいのは、「状態が倉曎されるから」である。
あちこちでデヌタを曞き換えたりせず、状態の倉曎を最小限にすれば、
䞊列プログラミングの難しさはかなり緩和される。

近幎、関数型プログラミング(Functional Programming)ずいうパラダむ
ムがようやく脚光を济び始めた。
玔粋な関数型プログラミングは、「関数は同じ匕数を䞎えたら必ず同
じ倀を返す」ずいうポリシヌの元、デヌタの䞍倉性を基瀎ずしたプログ
ラミング手法である。

C#, C++0x, Scalaのような近幎のプログラミング蚀語では、関数型プロ
グラミングの特城を倚く取り入れ始め、状態の倉曎を最小限にできる
ような蚀語機胜やラむブラリを提䟛し始めおいる。
他の䞊列プログラミングのアプロヌチ

• Lock-free
  ミュヌテックスによる共有倉数のロックは重いため、Compare and
  Swap(CAS)ず呌ばれる軜量の競合チェック + 砎壊的操䜜を行う
  Lock-freeずいう手法が浞透しおきおいる。
  (抜象の䞭に隠すのが䞀般的)

• GPGPU(General-purpose computing on GPU)
  近幎のGPUは1,000を超える倧量のコアを持っおいるため、同時凊
  理に向いおいる。GPGPUは、GPUの胜力をGPU本来の蚈算以倖の
  甚途に応甚する技術である。

• 分散凊理
  もはや䞀぀のマシンだけでは凊理しきれない巚倧デヌタや蚈算を
  扱うために、耇数のサヌバヌに凊理を分散させる手法である。
Chapter 2
    ネットワヌクプログラミング
    Network Programming
ネットワヌクプログラミング

• PCやモバむル端末がむンタヌネットに接続できるこずが前提
  ずなる珟代においお、ネットワヌクプログラミングは欠かすこ
  ずのできないものずなった。
• もはやスタンドアロンで目的を達成できるアプリケヌションの
  分野はかなり限られる。
ネットワヌクプログラミングずは䜕か

• ネットワヌクプログラミングずは、ネットワヌクを介しお盞手ず
  デヌタのやりずりを行うプログラミングのこずである。

• サヌバヌに芁求を行い結果を埗るクラむアント、
  クラむアントからの芁求を受け結果を枡すサヌバヌ、
  ずいうクラむアントサヌバヌモデルが䞀般的である。
ネットワヌクプログラミングの領域は拡倧しおいる
ネットワヌクプログラミングが圓たり前ずなっおきた珟代においお、そ
の甚途もたた倚岐にわたるようになった。

•Peer to Peer(P2P)
お互いがクラむアントにもサヌバヌにもなり埗る察等な関係の通信モ
デル。モバむル端末同士の通信で察戊ゲヌムなどで䜿甚されおいる。

•巚倧デヌタの分散凊理
ひず぀のPCでは凊理しきれないほど巚倧なデヌタを耇数のサヌバヌ
を䜿っお凊理する手法。ネットワヌクを介しお他のサヌバヌに凊理を
䟝頌する。ログの統蚈や科孊蚈算などで䜿甚されおいる。

•ナヌザヌ操䜜の統蚈
「ナヌザヌがどんな行動をずり、どれくらいの時間でプレむを䞭断し、
二床ず埩垰しなくなったか」 ずいった情報は、゜フトりェア開発者に
ずっお重芁な情報ずなり埗る。゜ヌシャルゲヌムの分野では、ナヌ
ザヌのあらゆる操䜜を集蚈し、次回䜜のために圹立おおいる。
C++におけるネットワヌクプログラミング

• C++では、ネットワヌクプログラミングの方法ずしお、Boost Asio
  Libraryを利甚する方法がある。これは、非同期凊理党般を扱うラ
  むブラリで、次期暙準*の候補ずしおも挙がっおいる。

  asio::io_service io_service;
  tcp::socket socket(io_service);

  

  // 非同期にデヌタを送信する
  std::string request = “Hello”;
  async_write(socket, buffer(request), on_send);

  

  // 送信終了時にこの関数が呌ばれる
  void on_send(const error_code& error)
  {
      if (!error)
          std::cout << “正垞終了” << std::endl;
  }                                                * C++0xの埌
通信で䜿甚されるデヌタ圢匏

通信で䜿甚される䞻なデヌタ圢匏は以䞋

•XML
   HTMLラむクな、タグで囲んで倀を蚘述する圢匏
•JSON
   名前ず倀の組でデヌタを衚珟し、短い衚蚘で型を衚珟できるデヌタ圢匏
•MessagePack
   蚀語間通信を意図した汎甚バむナリ圢匏。デヌタは珟圚のずころ
   最も小さくなる。


ラむブラリを䜿甚しお、ナヌザヌ定矩型をこれらのデヌタ圢匏に
シリアラむズしお通信で送受信するのが䞀般的である。
Chapter 3
       コンピュヌタビゞョン
        Computer Vision
コンピュヌタビゞョンずは

• 画像凊理、画像認識ずいった、画像に察する操䜜、カメラか
  ら埗られた情報を解析する操䜜などの分野がコンピュヌタビ
  ゞョンず呌ばれおいる。

• この分野は叀くから研究利甚されおきおはいるが、コン
  ピュヌタの速床がネックになっおいたため日の目を芋なかっ
  た。凊理速床が向䞊したこずで耇雑な凊理でもようやく珟実
  的に䜿えるようになっおきた。
画像凊理

• 画像に察する凊理は、様々な分野においお利甚されおいる。
  簡単なずころで蚀うず、画像の各ピクセルのRGB倀に察しお、
  ある倀を掛けるずグレヌスケヌルになる
        Y 茝床 = r * 0.229 + g * 0.587 + b * 0.114;
        r = Y;
        g = Y;
        b = Y;
画像認識

• 画像認識は、画像デヌタや映像デヌタから特定のパタヌン
  を認識しお情報を抜出する技術である。
  物䜓怜出や、人の顔認識、指王認識やOCRなどが画像認識
  に圓たる。
コンピュヌタビゞョンはどこで䜿われるか

• 画像凊理自䜓は、ゲヌムや、䞀般的な゜フトりェアでも䜿われおい
  るが、近幎は画像認識がより身近になっおきた。

• 拡匵珟実(AR : Augmented Reality)ず呌ばれる、珟実の映像ず仮想
  的な物䜓を合成しおナヌザヌに提瀺する技術が泚目されおきおい
  る。

• たた、Kinectずいうデバむスによっお、高機胜なセンサによる画像
  認識が䜎䟡栌で可胜ずなったため、䞀般ナヌザヌが画像認識ずい
  う技術に觊れる機䌚が倚くなっおきた。

䞀般の゜フトりェア開発者にもコンピュヌタビゞョンを扱う技術・知識
 が求められるようになっおきおいる。
OpenCV

• コンピュヌタビゞョンでは、OpenCVずいうオヌプン゜ヌスのラ
  むブラリが広く䜿われおおり、C++にも察応しおいる。

• このラむブラリは、コンピュヌタビゞョンの専門的な技術を抜
  象化し、クラス・関数ずしお提䟛しおいるため、専門知識がそ
  れほどなくおも䜿甚するこずができる。

• 最近では、OpenMPによる䞊列凊理や、CUDAによるGPGPU
  ぞの察応なども行われおいる。
Chapter 4
        メタプログラミング
        Metaprogramming
メタプログラミング

メタプログラミングずは、プログラムに関するプログラムである。

• コヌドの自動生成を行うもの
  (e.g. Cプリプロセッサ、Template Haskell)
• 構文朚を操䜜するもの
  (e.g. Lispマクロ、Template Haskell)
• 型の操䜜を行うもの
  (e.g. C++テンプレヌト、Haskellのfundepsずtype families)
• EDSL(Embedded Domain Specific Language)の䜜成
  (e.g. 挔算子オヌバヌロヌド、関数の䞭眮蚘法)

などがある。
コヌド生成系メタプログラミング

• 蚀語の通垞の構文では抜象化しきれないコヌドを自動生成
  するためにメタプログラミングが䜿われるこずがある。
  C++03における型安党な可倉匕数を生成するために䜿われ
  たりする。

• MicrosoftのT4 Templateも、広矩においおはコヌド生成系メタ
  プログラミングの䞀皮ずずるこずができる。

• コピヌ&ペヌストがどうしおも必芁になっおしたう堎面で、コヌ
  ド生成を自動化すれば1箇所盎せば党お盎る、ずいう利点が
  あり、メンテナンスが容易である。
構文朚操䜜系メタプログラミング

• 構文朚操䜜系メタプログラミングは、蚀語に察しおナヌザヌ
  が独自の構文を远加したり、任意のコンパむル時゚ラヌ、譊
  告を発生させたりするのに䜿甚するこずができる。

• 蚀語機胜ずしおは、Lispマクロ、GroovyのAST倉換、D蚀語に
  搭茉予定のマクロあたりが代衚䟋である。

• たた、近幎ではコンパむラプラグむンずいう圢で、コンパむラ
  が持っおいる構文朚等のメタ情報を抜出し、操䜜できる機胜
  を提䟛しおいるずころも出おきた(䟋: GCC, Clang, Scala)。
  これは、IDEの䜜成に䜿えるのはもちろんのこず、絶察コヌ
  ディング暙準なども䜜り出すこずができる。
型操䜜系メタプログラミング

• 型操䜜系メタプログラミングは、型や、型の芁件を集めたコン
  セプトごずに最適な実装を遞択させる、最適化やアダプトの
  機構ずしお䜿われるこずが倚い。

• ナヌザヌ定矩型はコンパむラの最適化が届かない領域であ
  るため、こういったこずが必芁になる。
  「抜象化にはコストがずもなう」ず蚀われる問題ぞのアプロヌ
  チ。

• コンパむル時に戊略を切り替えるPolicy-based Designは、抜
  象化された実装をひず぀だけ甚意するのではなく、あらゆる
  芁求に応えるために甚途別の最適な実装を切り替えるのに
  䜿甚される。
EDSL(Embedded Domain Specific Language)の䜜成

• デヌタベヌス操䜜や構文解析ずいった特定のドメむンのため
  の構文がほしくなるこずがある。
  そういった堎合に、挔算子などに新たな意味を持たせお蚀語
  内蚀語を䜜るこずで有甚ずなり埗る。

• 䟋
  –   EBNFラむクな構文解析をC++䞊で行うBoost.Spirit
  –   C++03でラムダ匏を衚珟するBoost.Lambda
  –   Erlangラむクな構文でアクタヌモデルを衚珟するScalaのActor
  –   Scalaでデヌタベヌス操䜜のためのRogue
たずめ


• プログラミングの分野は広い。

• 自分がどの分野に興味があるのか確かめるためにも、いろ
  んな情報を垞に仕入れ、飛び蟌んでいこう。

More Related Content

What's hot

PythonによるCVアルゎリズム実装
PythonによるCVアルゎリズム実装PythonによるCVアルゎリズム実装
PythonによるCVアルゎリズム実装Hirokatsu Kataoka
 
ニュヌラルネットワヌクの数理
ニュヌラルネットワヌクの数理ニュヌラルネットワヌクの数理
ニュヌラルネットワヌクの数理Task Ohmori
 
画像凊理の高性胜蚈算
画像凊理の高性胜蚈算画像凊理の高性胜蚈算
画像凊理の高性胜蚈算Norishige Fukushima
 
2015幎床先端GPGPUシミュレヌション工孊特論 第5回 GPUのメモリ階局の詳现 様々なメモリの利甚
2015幎床先端GPGPUシミュレヌション工孊特論 第5回 GPUのメモリ階局の詳现様々なメモリの利甚2015幎床先端GPGPUシミュレヌション工孊特論 第5回 GPUのメモリ階局の詳现様々なメモリの利甚
2015幎床先端GPGPUシミュレヌション工孊特論 第5回 GPUのメモリ階局の詳现 様々なメモリの利甚 智啓 出川
 
TensorFlowずCNTK
TensorFlowずCNTKTensorFlowずCNTK
TensorFlowずCNTKmaruyama097
 
深局孊習 第4ç«  倧芏暡深局孊習の実珟技術
深局孊習 第4ç«  倧芏暡深局孊習の実珟技術深局孊習 第4ç«  倧芏暡深局孊習の実珟技術
深局孊習 第4ç«  倧芏暡深局孊習の実珟技術孝昌 田侭
 
コンピュヌタビゞョン 章
コンピュヌタビゞョン 章コンピュヌタビゞョン 章
コンピュヌタビゞョン 章motimune
 
蚈算機アヌキテクチャを考慮した高胜率画像凊理プログラミング
蚈算機アヌキテクチャを考慮した高胜率画像凊理プログラミング蚈算機アヌキテクチャを考慮した高胜率画像凊理プログラミング
蚈算機アヌキテクチャを考慮した高胜率画像凊理プログラミングNorishige Fukushima
 
2015幎床GPGPU実践プログラミング 第11回 画像凊理
2015幎床GPGPU実践プログラミング 第11回 画像凊理2015幎床GPGPU実践プログラミング 第11回 画像凊理
2015幎床GPGPU実践プログラミング 第11回 画像凊理智啓 出川
 
2015幎床GPGPU実践基瀎工孊 第6回 ゜フトりェアによるCPUの高速化技術
2015幎床GPGPU実践基瀎工孊 第6回 ゜フトりェアによるCPUの高速化技術2015幎床GPGPU実践基瀎工孊 第6回 ゜フトりェアによるCPUの高速化技術
2015幎床GPGPU実践基瀎工孊 第6回 ゜フトりェアによるCPUの高速化技術智啓 出川
 
「れロから䜜るDeep learning」の畳み蟌みニュヌラルネットワヌクのハヌドりェア化
「れロから䜜るDeep learning」の畳み蟌みニュヌラルネットワヌクのハヌドりェア化「れロから䜜るDeep learning」の畳み蟌みニュヌラルネットワヌクのハヌドりェア化
「れロから䜜るDeep learning」の畳み蟌みニュヌラルネットワヌクのハヌドりェア化marsee101
 
2015幎床GPGPU実践基瀎工孊 第2回 GPGPUの歎史ず応甚䟋
2015幎床GPGPU実践基瀎工孊 第2回 GPGPUの歎史ず応甚䟋2015幎床GPGPU実践基瀎工孊 第2回 GPGPUの歎史ず応甚䟋
2015幎床GPGPU実践基瀎工孊 第2回 GPGPUの歎史ず応甚䟋智啓 出川
 
2015幎床GPGPU実践プログラミング 第4回 GPUでの䞊列プログラミングベクトル和移動平均差分法
2015幎床GPGPU実践プログラミング 第4回 GPUでの䞊列プログラミングベクトル和移動平均差分法2015幎床GPGPU実践プログラミング 第4回 GPUでの䞊列プログラミングベクトル和移動平均差分法
2015幎床GPGPU実践プログラミング 第4回 GPUでの䞊列プログラミングベクトル和移動平均差分法智啓 出川
 
LSTM (Long short-term memory) 抂芁
LSTM (Long short-term memory) 抂芁LSTM (Long short-term memory) 抂芁
LSTM (Long short-term memory) 抂芁Kenji Urai
 
cvsaisentan20141004 kanezaki
cvsaisentan20141004 kanezakicvsaisentan20141004 kanezaki
cvsaisentan20141004 kanezakikanejaki
 
【DL茪読䌚】Perceiver io a general architecture for structured inputs &amp; outputs
【DL茪読䌚】Perceiver io  a general architecture for structured inputs &amp; outputs 【DL茪読䌚】Perceiver io  a general architecture for structured inputs &amp; outputs
【DL茪読䌚】Perceiver io a general architecture for structured inputs &amp; outputs Deep Learning JP
 
2015幎床GPGPU実践基瀎工孊 第4回 CPUのアヌキテクチャ
2015幎床GPGPU実践基瀎工孊 第4回 CPUのアヌキテクチャ2015幎床GPGPU実践基瀎工孊 第4回 CPUのアヌキテクチャ
2015幎床GPGPU実践基瀎工孊 第4回 CPUのアヌキテクチャ智啓 出川
 
はじめおの人のためのDeep Learning
はじめおの人のためのDeep Learningはじめおの人のためのDeep Learning
はじめおの人のためのDeep LearningTadaichiro Nakano
 
2015幎床先端GPGPUシミュレヌション工孊特論 第7回 総和蚈算Atomic挔算
2015幎床先端GPGPUシミュレヌション工孊特論 第7回 総和蚈算Atomic挔算2015幎床先端GPGPUシミュレヌション工孊特論 第7回 総和蚈算Atomic挔算
2015幎床先端GPGPUシミュレヌション工孊特論 第7回 総和蚈算Atomic挔算智啓 出川
 
2015幎床先端GPGPUシミュレヌション工孊特論 第1回 先端シミュレヌションおよび産業界におけるGPUの圹割
2015幎床先端GPGPUシミュレヌション工孊特論 第1回 先端シミュレヌションおよび産業界におけるGPUの圹割2015幎床先端GPGPUシミュレヌション工孊特論 第1回 先端シミュレヌションおよび産業界におけるGPUの圹割
2015幎床先端GPGPUシミュレヌション工孊特論 第1回 先端シミュレヌションおよび産業界におけるGPUの圹割智啓 出川
 

What's hot (20)

PythonによるCVアルゎリズム実装
PythonによるCVアルゎリズム実装PythonによるCVアルゎリズム実装
PythonによるCVアルゎリズム実装
 
ニュヌラルネットワヌクの数理
ニュヌラルネットワヌクの数理ニュヌラルネットワヌクの数理
ニュヌラルネットワヌクの数理
 
画像凊理の高性胜蚈算
画像凊理の高性胜蚈算画像凊理の高性胜蚈算
画像凊理の高性胜蚈算
 
2015幎床先端GPGPUシミュレヌション工孊特論 第5回 GPUのメモリ階局の詳现 様々なメモリの利甚
2015幎床先端GPGPUシミュレヌション工孊特論 第5回 GPUのメモリ階局の詳现様々なメモリの利甚2015幎床先端GPGPUシミュレヌション工孊特論 第5回 GPUのメモリ階局の詳现様々なメモリの利甚
2015幎床先端GPGPUシミュレヌション工孊特論 第5回 GPUのメモリ階局の詳现 様々なメモリの利甚
 
TensorFlowずCNTK
TensorFlowずCNTKTensorFlowずCNTK
TensorFlowずCNTK
 
深局孊習 第4ç«  倧芏暡深局孊習の実珟技術
深局孊習 第4ç«  倧芏暡深局孊習の実珟技術深局孊習 第4ç«  倧芏暡深局孊習の実珟技術
深局孊習 第4ç«  倧芏暡深局孊習の実珟技術
 
コンピュヌタビゞョン 章
コンピュヌタビゞョン 章コンピュヌタビゞョン 章
コンピュヌタビゞョン 章
 
蚈算機アヌキテクチャを考慮した高胜率画像凊理プログラミング
蚈算機アヌキテクチャを考慮した高胜率画像凊理プログラミング蚈算機アヌキテクチャを考慮した高胜率画像凊理プログラミング
蚈算機アヌキテクチャを考慮した高胜率画像凊理プログラミング
 
2015幎床GPGPU実践プログラミング 第11回 画像凊理
2015幎床GPGPU実践プログラミング 第11回 画像凊理2015幎床GPGPU実践プログラミング 第11回 画像凊理
2015幎床GPGPU実践プログラミング 第11回 画像凊理
 
2015幎床GPGPU実践基瀎工孊 第6回 ゜フトりェアによるCPUの高速化技術
2015幎床GPGPU実践基瀎工孊 第6回 ゜フトりェアによるCPUの高速化技術2015幎床GPGPU実践基瀎工孊 第6回 ゜フトりェアによるCPUの高速化技術
2015幎床GPGPU実践基瀎工孊 第6回 ゜フトりェアによるCPUの高速化技術
 
「れロから䜜るDeep learning」の畳み蟌みニュヌラルネットワヌクのハヌドりェア化
「れロから䜜るDeep learning」の畳み蟌みニュヌラルネットワヌクのハヌドりェア化「れロから䜜るDeep learning」の畳み蟌みニュヌラルネットワヌクのハヌドりェア化
「れロから䜜るDeep learning」の畳み蟌みニュヌラルネットワヌクのハヌドりェア化
 
2015幎床GPGPU実践基瀎工孊 第2回 GPGPUの歎史ず応甚䟋
2015幎床GPGPU実践基瀎工孊 第2回 GPGPUの歎史ず応甚䟋2015幎床GPGPU実践基瀎工孊 第2回 GPGPUの歎史ず応甚䟋
2015幎床GPGPU実践基瀎工孊 第2回 GPGPUの歎史ず応甚䟋
 
2015幎床GPGPU実践プログラミング 第4回 GPUでの䞊列プログラミングベクトル和移動平均差分法
2015幎床GPGPU実践プログラミング 第4回 GPUでの䞊列プログラミングベクトル和移動平均差分法2015幎床GPGPU実践プログラミング 第4回 GPUでの䞊列プログラミングベクトル和移動平均差分法
2015幎床GPGPU実践プログラミング 第4回 GPUでの䞊列プログラミングベクトル和移動平均差分法
 
LSTM (Long short-term memory) 抂芁
LSTM (Long short-term memory) 抂芁LSTM (Long short-term memory) 抂芁
LSTM (Long short-term memory) 抂芁
 
cvsaisentan20141004 kanezaki
cvsaisentan20141004 kanezakicvsaisentan20141004 kanezaki
cvsaisentan20141004 kanezaki
 
【DL茪読䌚】Perceiver io a general architecture for structured inputs &amp; outputs
【DL茪読䌚】Perceiver io  a general architecture for structured inputs &amp; outputs 【DL茪読䌚】Perceiver io  a general architecture for structured inputs &amp; outputs
【DL茪読䌚】Perceiver io a general architecture for structured inputs &amp; outputs
 
2015幎床GPGPU実践基瀎工孊 第4回 CPUのアヌキテクチャ
2015幎床GPGPU実践基瀎工孊 第4回 CPUのアヌキテクチャ2015幎床GPGPU実践基瀎工孊 第4回 CPUのアヌキテクチャ
2015幎床GPGPU実践基瀎工孊 第4回 CPUのアヌキテクチャ
 
はじめおの人のためのDeep Learning
はじめおの人のためのDeep Learningはじめおの人のためのDeep Learning
はじめおの人のためのDeep Learning
 
2015幎床先端GPGPUシミュレヌション工孊特論 第7回 総和蚈算Atomic挔算
2015幎床先端GPGPUシミュレヌション工孊特論 第7回 総和蚈算Atomic挔算2015幎床先端GPGPUシミュレヌション工孊特論 第7回 総和蚈算Atomic挔算
2015幎床先端GPGPUシミュレヌション工孊特論 第7回 総和蚈算Atomic挔算
 
2015幎床先端GPGPUシミュレヌション工孊特論 第1回 先端シミュレヌションおよび産業界におけるGPUの圹割
2015幎床先端GPGPUシミュレヌション工孊特論 第1回 先端シミュレヌションおよび産業界におけるGPUの圹割2015幎床先端GPGPUシミュレヌション工孊特論 第1回 先端シミュレヌションおよび産業界におけるGPUの圹割
2015幎床先端GPGPUシミュレヌション工孊特論 第1回 先端シミュレヌションおよび産業界におけるGPUの圹割
 

Similar to Bjarne dont speaking

2012-03-08 MSS研究䌚
2012-03-08 MSS研究䌚2012-03-08 MSS研究䌚
2012-03-08 MSS研究䌚Kimikazu Kato
 
20160728 hyperscale #03
20160728 hyperscale #0320160728 hyperscale #03
20160728 hyperscale #03ManaMurakami1
 
Runtime c++editing
Runtime c++editingRuntime c++editing
Runtime c++editingSeiya Ishibashi
 
2020/11/19 Global AI on Tour - Toyama プログラマヌのための機械孊習入門
2020/11/19 Global AI on Tour - Toyama プログラマヌのための機械孊習入門2020/11/19 Global AI on Tour - Toyama プログラマヌのための機械孊習入門
2020/11/19 Global AI on Tour - Toyama プログラマヌのための機械孊習入門Daiyu Hatakeyama
 
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGA
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGAAn Introduction of DNN Compression Technology and Hardware Acceleration on FPGA
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGALeapMind Inc
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127Natsutani Minoru
 
MinChain – Bitcoin ラむクな最小限のブロックチェヌン実装
MinChain – Bitcoin ラむクな最小限のブロックチェヌン実装MinChain – Bitcoin ラむクな最小限のブロックチェヌン実装
MinChain – Bitcoin ラむクな最小限のブロックチェヌン実装Yuto Takei
 
機械孊習 / Deep Learning 倧党 (6) Libraryç·š
機械孊習 / Deep Learning 倧党 (6) Library線機械孊習 / Deep Learning 倧党 (6) Libraryç·š
機械孊習 / Deep Learning 倧党 (6) Libraryç·šDaiyu Hatakeyama
 
Rustで3D graphics programming
Rustで3D graphics programmingRustで3D graphics programming
Rustで3D graphics programmingKiyotomoHiroyasu
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14swkagami
 
seccamp2012 チュヌタヌ発衚
seccamp2012 チュヌタヌ発衚seccamp2012 チュヌタヌ発衚
seccamp2012 チュヌタヌ発衚Hirotaka Kawata
 
Math works gdlc2019
Math works gdlc2019Math works gdlc2019
Math works gdlc2019Hirokuni Uchida
 
【2017幎】ディヌプラヌニングのフレヌムワヌク比范
【2017幎】ディヌプラヌニングのフレヌムワヌク比范【2017幎】ディヌプラヌニングのフレヌムワヌク比范
【2017幎】ディヌプラヌニングのフレヌムワヌク比范Ryota Suzuki
 
機械孊習プロゞェクトにおける Cloud AI Platform の䜿い方 (2018-11-19)
機械孊習プロゞェクトにおける Cloud AI Platform の䜿い方 (2018-11-19)機械孊習プロゞェクトにおける Cloud AI Platform の䜿い方 (2018-11-19)
機械孊習プロゞェクトにおける Cloud AI Platform の䜿い方 (2018-11-19)Yaboo Oyabu
 
これからのコンピュヌティングの倉化ずこれからのプログラミング at 広島
これからのコンピュヌティングの倉化ずこれからのプログラミング at 広島これからのコンピュヌティングの倉化ずこれからのプログラミング at 広島
これからのコンピュヌティングの倉化ずこれからのプログラミング at 広島なおき きしだ
 
Python による 「スクレむピング & 自然蚀語凊理」入門
Python による 「スクレむピング & 自然蚀語凊理」入門Python による 「スクレむピング & 自然蚀語凊理」入門
Python による 「スクレむピング & 自然蚀語凊理」入門Tatsuya Tojima
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714swkagami
 
競技プログラミングにおけるコヌドの曞き方ずその利䟿性
競技プログラミングにおけるコヌドの曞き方ずその利䟿性競技プログラミングにおけるコヌドの曞き方ずその利䟿性
競技プログラミングにおけるコヌドの曞き方ずその利䟿性Hibiki Yamashiro
 
20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdfKazuaki Ishizaki
 
䌚議宀を珟堎にする リアルタむム共同線集によるプロトタむピング
䌚議宀を珟堎にする リアルタむム共同線集によるプロトタむピング䌚議宀を珟堎にする リアルタむム共同線集によるプロトタむピング
䌚議宀を珟堎にする リアルタむム共同線集によるプロトタむピングMasaru Nagaku
 

Similar to Bjarne dont speaking (20)

2012-03-08 MSS研究䌚
2012-03-08 MSS研究䌚2012-03-08 MSS研究䌚
2012-03-08 MSS研究䌚
 
20160728 hyperscale #03
20160728 hyperscale #0320160728 hyperscale #03
20160728 hyperscale #03
 
Runtime c++editing
Runtime c++editingRuntime c++editing
Runtime c++editing
 
2020/11/19 Global AI on Tour - Toyama プログラマヌのための機械孊習入門
2020/11/19 Global AI on Tour - Toyama プログラマヌのための機械孊習入門2020/11/19 Global AI on Tour - Toyama プログラマヌのための機械孊習入門
2020/11/19 Global AI on Tour - Toyama プログラマヌのための機械孊習入門
 
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGA
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGAAn Introduction of DNN Compression Technology and Hardware Acceleration on FPGA
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGA
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127
 
MinChain – Bitcoin ラむクな最小限のブロックチェヌン実装
MinChain – Bitcoin ラむクな最小限のブロックチェヌン実装MinChain – Bitcoin ラむクな最小限のブロックチェヌン実装
MinChain – Bitcoin ラむクな最小限のブロックチェヌン実装
 
機械孊習 / Deep Learning 倧党 (6) Libraryç·š
機械孊習 / Deep Learning 倧党 (6) Library線機械孊習 / Deep Learning 倧党 (6) Libraryç·š
機械孊習 / Deep Learning 倧党 (6) Libraryç·š
 
Rustで3D graphics programming
Rustで3D graphics programmingRustで3D graphics programming
Rustで3D graphics programming
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
 
seccamp2012 チュヌタヌ発衚
seccamp2012 チュヌタヌ発衚seccamp2012 チュヌタヌ発衚
seccamp2012 チュヌタヌ発衚
 
Math works gdlc2019
Math works gdlc2019Math works gdlc2019
Math works gdlc2019
 
【2017幎】ディヌプラヌニングのフレヌムワヌク比范
【2017幎】ディヌプラヌニングのフレヌムワヌク比范【2017幎】ディヌプラヌニングのフレヌムワヌク比范
【2017幎】ディヌプラヌニングのフレヌムワヌク比范
 
機械孊習プロゞェクトにおける Cloud AI Platform の䜿い方 (2018-11-19)
機械孊習プロゞェクトにおける Cloud AI Platform の䜿い方 (2018-11-19)機械孊習プロゞェクトにおける Cloud AI Platform の䜿い方 (2018-11-19)
機械孊習プロゞェクトにおける Cloud AI Platform の䜿い方 (2018-11-19)
 
これからのコンピュヌティングの倉化ずこれからのプログラミング at 広島
これからのコンピュヌティングの倉化ずこれからのプログラミング at 広島これからのコンピュヌティングの倉化ずこれからのプログラミング at 広島
これからのコンピュヌティングの倉化ずこれからのプログラミング at 広島
 
Python による 「スクレむピング & 自然蚀語凊理」入門
Python による 「スクレむピング & 自然蚀語凊理」入門Python による 「スクレむピング & 自然蚀語凊理」入門
Python による 「スクレむピング & 自然蚀語凊理」入門
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
 
競技プログラミングにおけるコヌドの曞き方ずその利䟿性
競技プログラミングにおけるコヌドの曞き方ずその利䟿性競技プログラミングにおけるコヌドの曞き方ずその利䟿性
競技プログラミングにおけるコヌドの曞き方ずその利䟿性
 
20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf
 
䌚議宀を珟堎にする リアルタむム共同線集によるプロトタむピング
䌚議宀を珟堎にする リアルタむム共同線集によるプロトタむピング䌚議宀を珟堎にする リアルタむム共同線集によるプロトタむピング
䌚議宀を珟堎にする リアルタむム共同線集によるプロトタむピング
 

More from Akira Takahashi

Cpp20 overview language features
Cpp20 overview language featuresCpp20 overview language features
Cpp20 overview language featuresAkira Takahashi
 
Modern C++ Learning
Modern C++ LearningModern C++ Learning
Modern C++ LearningAkira Takahashi
 
cpprefjp documentation
cpprefjp documentationcpprefjp documentation
cpprefjp documentationAkira Takahashi
 
Boost tour 1_61_0 merge
Boost tour 1_61_0 mergeBoost tour 1_61_0 merge
Boost tour 1_61_0 mergeAkira Takahashi
 
error handling using expected
error handling using expectederror handling using expected
error handling using expectedAkira Takahashi
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 mergeAkira Takahashi
 
Boost container feature
Boost container featureBoost container feature
Boost container featureAkira Takahashi
 
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 mergeBoost Tour 1_58_0 merge
Boost Tour 1_58_0 mergeAkira Takahashi
 
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructorC++14 solve explicit_default_constructor
C++14 solve explicit_default_constructorAkira Takahashi
 
Multi paradigm design
Multi paradigm designMulti paradigm design
Multi paradigm designAkira Takahashi
 
Boost.Study 14 Opening
Boost.Study 14 OpeningBoost.Study 14 Opening
Boost.Study 14 OpeningAkira Takahashi
 

More from Akira Takahashi (20)

Cpp20 overview language features
Cpp20 overview language featuresCpp20 overview language features
Cpp20 overview language features
 
Cppmix 02
Cppmix 02Cppmix 02
Cppmix 02
 
Cppmix 01
Cppmix 01Cppmix 01
Cppmix 01
 
Modern C++ Learning
Modern C++ LearningModern C++ Learning
Modern C++ Learning
 
cpprefjp documentation
cpprefjp documentationcpprefjp documentation
cpprefjp documentation
 
C++1z draft
C++1z draftC++1z draft
C++1z draft
 
Boost tour 1_61_0 merge
Boost tour 1_61_0 mergeBoost tour 1_61_0 merge
Boost tour 1_61_0 merge
 
Boost tour 1_61_0
Boost tour 1_61_0Boost tour 1_61_0
Boost tour 1_61_0
 
error handling using expected
error handling using expectederror handling using expected
error handling using expected
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 merge
 
Boost tour 1.60.0
Boost tour 1.60.0Boost tour 1.60.0
Boost tour 1.60.0
 
Boost container feature
Boost container featureBoost container feature
Boost container feature
 
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 mergeBoost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
 
Boost Tour 1_58_0
Boost Tour 1_58_0Boost Tour 1_58_0
Boost Tour 1_58_0
 
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructorC++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
 
C++14 enum hash
C++14 enum hashC++14 enum hash
C++14 enum hash
 
Multi paradigm design
Multi paradigm designMulti paradigm design
Multi paradigm design
 
Start Concurrent
Start ConcurrentStart Concurrent
Start Concurrent
 
Programmer mind
Programmer mindProgrammer mind
Programmer mind
 
Boost.Study 14 Opening
Boost.Study 14 OpeningBoost.Study 14 Opening
Boost.Study 14 Opening
 

Bjarne dont speaking