Submit Search
Upload
Code iq interpretation_tanaka_publish
•
0 likes
•
3,704 views
Fixstars Corporation
Follow
Technology
Report
Share
Report
Share
1 of 9
Download now
Download to read offline
Recommended
強化学習勉強会_No1@産総研
強化学習勉強会_No1@産総研
robotpaperchallenge
kggk2
kggk2
Ak Ok
最急降下法で制約つき最適化問題を解いてみた
最急降下法で制約つき最適化問題を解いてみた
Kazuhiro Hishinuma
小五月蝿いデザイナーに「いいじゃん」て言わせる【画像編集のTOPICS15】
小五月蝿いデザイナーに「いいじゃん」て言わせる【画像編集のTOPICS15】
Tsuyoshi Kaneko
Marathon mi sawa
Marathon mi sawa
Fixstars Corporation
第5回 社内プログラミングコンテスト 結果発表会 ライフゲームGO
第5回 社内プログラミングコンテスト 結果発表会 ライフゲームGO
Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
Fixstars Corporation
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
Recommended
強化学習勉強会_No1@産総研
強化学習勉強会_No1@産総研
robotpaperchallenge
kggk2
kggk2
Ak Ok
最急降下法で制約つき最適化問題を解いてみた
最急降下法で制約つき最適化問題を解いてみた
Kazuhiro Hishinuma
小五月蝿いデザイナーに「いいじゃん」て言わせる【画像編集のTOPICS15】
小五月蝿いデザイナーに「いいじゃん」て言わせる【画像編集のTOPICS15】
Tsuyoshi Kaneko
Marathon mi sawa
Marathon mi sawa
Fixstars Corporation
第5回 社内プログラミングコンテスト 結果発表会 ライフゲームGO
第5回 社内プログラミングコンテスト 結果発表会 ライフゲームGO
Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
Fixstars Corporation
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
Fixstars Corporation
株式会社フィックスターズの会社説明資料(抜粋)
株式会社フィックスターズの会社説明資料(抜粋)
Fixstars Corporation
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fixstars Corporation
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
Fixstars Corporation
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
Fixstars Corporation
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
Fixstars Corporation
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
Fixstars Corporation
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
Fixstars Corporation
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
Fixstars Corporation
第8回社内プログラミングコンテスト 結果発表会
第8回社内プログラミングコンテスト 結果発表会
Fixstars Corporation
第8回社内プログラミングコンテスト 第1位 taiyo
第8回社内プログラミングコンテスト 第1位 taiyo
Fixstars Corporation
第8回社内プログラミングコンテスト 第2位 fy999
第8回社内プログラミングコンテスト 第2位 fy999
Fixstars Corporation
第8回社内プログラミングコンテスト 第3位 logicmachine
第8回社内プログラミングコンテスト 第3位 logicmachine
Fixstars Corporation
More Related Content
More from Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
Fixstars Corporation
株式会社フィックスターズの会社説明資料(抜粋)
株式会社フィックスターズの会社説明資料(抜粋)
Fixstars Corporation
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fixstars Corporation
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
Fixstars Corporation
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
Fixstars Corporation
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
Fixstars Corporation
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
Fixstars Corporation
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
Fixstars Corporation
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
Fixstars Corporation
第8回社内プログラミングコンテスト 結果発表会
第8回社内プログラミングコンテスト 結果発表会
Fixstars Corporation
第8回社内プログラミングコンテスト 第1位 taiyo
第8回社内プログラミングコンテスト 第1位 taiyo
Fixstars Corporation
第8回社内プログラミングコンテスト 第2位 fy999
第8回社内プログラミングコンテスト 第2位 fy999
Fixstars Corporation
第8回社内プログラミングコンテスト 第3位 logicmachine
第8回社内プログラミングコンテスト 第3位 logicmachine
Fixstars Corporation
More from Fixstars Corporation
(20)
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
株式会社フィックスターズの会社説明資料(抜粋)
株式会社フィックスターズの会社説明資料(抜粋)
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
第8回社内プログラミングコンテスト 結果発表会
第8回社内プログラミングコンテスト 結果発表会
第8回社内プログラミングコンテスト 第1位 taiyo
第8回社内プログラミングコンテスト 第1位 taiyo
第8回社内プログラミングコンテスト 第2位 fy999
第8回社内プログラミングコンテスト 第2位 fy999
第8回社内プログラミングコンテスト 第3位 logicmachine
第8回社内プログラミングコンテスト 第3位 logicmachine
Code iq interpretation_tanaka_publish
1.
株式会社フィックスターズ 「最適解を目指せ!!」 (ナンプレ盤面問題) 解法の説明 田中伸明
2.
自己紹介 田中伸明 Twitter等:tomerun 元々はパズル的な数学が好きだったことから、「コン ピューターサイエンスの応用みたいな事がしたいなー」 と思いソフトウェアエンジニアになる 2008年頃からTopCoderやGoogle Code Jam等に参 加、その縁もあって今年からフィックスターズへ それ以前はパッケージソフト開発など この問題のような、いわゆる"マラソン系"の問題を作っ たのは初めてでした
3.
方針 基本的な方針は、典型的な解法で紹介したような、ナン プレ盤面埋め+逐次改善 逐次改善の方法は、「1マス選んで他の値に変える」だ け。これを頑張って高速化しました。 ● 工夫の余地は色々ありそうだけど、その分遅くなって 結果は悪くなりそうな気がした ● ややこしいことをすると並列化が難しくなる
4.
高速化 最も影響が大きいと思われる「盤面のbit化」について。 1=0b000000001、2=0b000000010、… のようにして各数字をbitで表すと、 9個のマスに1〜9が1個ずつ含まれている ⇔9個のbitのorの結果が0b111111111=0x1FF とbit演算だけで判定でき高速。 ただし、この方法だと差分更新が難しい。 例えば、9マスの数字が 127456789 だったとすると、 bitのorを取った結果は
0b111111011 左から3つめを3に変更した結果がどうなるかは、また9 マス分辿ってorを取らないと確定できない
5.
高速化 この問題は、orではなくxorを取ることで解消できる。 1=0b00000001、2=0b00000010、…、9=0 のようにして各数字をbitで表す。こうすると、 9個のマスに1〜9が1個ずつ含まれている ⇔9個のbitのxorの結果が0b11111111=0xFF と判定できる(前ページでは9bitだったが今度は8bit) 例えば、9マスの数字が 127456789 だったとすると、 bitのxorを取った結果は
0b10111011 左から3つめを3に変更した結果がどうなるかは、この値 に差分である0b01000100をxorかければ分かる
6.
並列化 盤面を分割して並列に処理します。 縦8個*横8個の64領域に分け、市松模様に交互に Aグループを32並列で処理 →Bグループを32並列で処理 →Aグループを32並列で処理 →…以下繰り返し 実装にはOpenMPを使いました。 ほとんど引っかかることなく楽に書けました。 しかしこのブロックの分け方はよろしくなかった A B A
B A B A B A B A B A B AB A B A B A B A B A B A B A B AB A B A B A B A B A B A B A B AB A B A B A B A B A B A B A B AB
7.
並列化 市松模様だとスレッドセーフじゃなかった… 角で接する部分で互いに影響してしまいます。 下の図のように、細長く切るべきだった A B A B A B A B … A B A B A B A B 高さ8マス以上
8.
実行&結果 実行環境として、EC2のcc2.8xlarge (16core/32thread)スポットインスタンスを1台使い ました。 ● 実行時間:15時間 ● CPU時間:400時間 (CPU80%くらいしか使えてないですね) ● 料金:$4くらい? ● 合計繰り返し回数:5兆回 スコアは231829点でした。machyさんに負けた…
9.
まとめ ・OpenMPすごく楽 ・EC2スポットインスタンス安い ・machyさんすごい
Download now