Submit Search
テーマ「最適化 その2」
0 likes
387 views
T
technocat
2010/09/11 @do-speakers#1 愛について語ります。
Business
Technology
Read more
1 of 26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
More Related Content
PDF
テーマ「最適化」
technocat
PDF
Python で munin plugin を書いてみる
ftnk
PDF
Subprocess no susume
Makoto Kishimoto
PDF
Goをカンストさせる話
Moriyoshi Koizumi
PDF
板ポリだけで めちゃカッコいい グラフィックスを出す!
notargs
PDF
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
PDF
Scalaの限定継続の応用と基本
Kota Mizushima
TXT
New text document (2)
nagavenkat_7
テーマ「最適化」
technocat
Python で munin plugin を書いてみる
ftnk
Subprocess no susume
Makoto Kishimoto
Goをカンストさせる話
Moriyoshi Koizumi
板ポリだけで めちゃカッコいい グラフィックスを出す!
notargs
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
Scalaの限定継続の応用と基本
Kota Mizushima
New text document (2)
nagavenkat_7
What's hot
(20)
PPTX
Prosym2012
MITSUNARI Shigeo
PDF
Effective modern-c++#9
Tatsuki SHIMIZU
PPTX
Rでのtry関数によるエラー処理
wada, kazumi
PDF
effective modern c++ chapeter36
Tatsuki SHIMIZU
PDF
Rの高速化
弘毅 露崎
PDF
DTrace for biginners part(2)
Shoji Haraguchi
PDF
HPC Phys-20201203
MITSUNARI Shigeo
PDF
Wavelet matrix implementation
MITSUNARI Shigeo
PDF
Ssaw08 0701
Atsushi Tadokoro
PDF
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
MITSUNARI Shigeo
PDF
Async design with Unity3D
Kouji Hosoda
PDF
llvm入門
MITSUNARI Shigeo
PDF
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
PDF
条件分岐とcmovとmaxps
MITSUNARI Shigeo
PDF
デバドラを書いてみよう!
Masami Ichikawa
PDF
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
PDF
emcjp Item 42
MITSUNARI Shigeo
PDF
Effective Modern C++ 読書会 Item 35
Keisuke Fukuda
PDF
LLVM最適化のこつ
MITSUNARI Shigeo
PDF
マーク&スイープ勉強会
7shi
Prosym2012
MITSUNARI Shigeo
Effective modern-c++#9
Tatsuki SHIMIZU
Rでのtry関数によるエラー処理
wada, kazumi
effective modern c++ chapeter36
Tatsuki SHIMIZU
Rの高速化
弘毅 露崎
DTrace for biginners part(2)
Shoji Haraguchi
HPC Phys-20201203
MITSUNARI Shigeo
Wavelet matrix implementation
MITSUNARI Shigeo
Ssaw08 0701
Atsushi Tadokoro
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
MITSUNARI Shigeo
Async design with Unity3D
Kouji Hosoda
llvm入門
MITSUNARI Shigeo
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
条件分岐とcmovとmaxps
MITSUNARI Shigeo
デバドラを書いてみよう!
Masami Ichikawa
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
emcjp Item 42
MITSUNARI Shigeo
Effective Modern C++ 読書会 Item 35
Keisuke Fukuda
LLVM最適化のこつ
MITSUNARI Shigeo
マーク&スイープ勉強会
7shi
Ad
Viewers also liked
(16)
PDF
RIMS Update - Best Practices for Roading Asset Managemment
Simon Gough
PPTX
Google Science Fair Summary
Andrew Chen
PPTX
Creating Email Campaigns that Work: A Focus on Design Elements
Email on Acid
PPTX
November 12 : (Education)
AIMEC Reporter
PDF
SharePoint Saturday Houston: SharePoint 2010 Performance
Brian Culver
PPTX
Emerging technologies in_adult_education_classroombl (2)
Nell Eckersley
PPTX
Ppt ch12 marien_4_e-205401
Alexa Wheeler, University of New Mexico Valencia
PPTX
Mis deberes y derechos como aprendiz sena
majo980319
PDF
NGN Company Profile November08
Serdar Salepcioglu
PDF
Catálogo xpress - Equinos
Agrovet Market Animal Health
PDF
Microfiber goods
Christy andy
PDF
UIMP: Sistema Multiagente CBR para Turismo de Salamanca
Gerardo DeMiguel
PPT
Future of Composite Apps S-Controls and Beyond
dreamforce2006
PDF
Data table for falling steel
Ciyyu Kudu
PDF
Taller de autoestima. gestalt branden
Giovanny Sanchez
PDF
China placi de circuit imprimat preţul de listă
grace cheng
RIMS Update - Best Practices for Roading Asset Managemment
Simon Gough
Google Science Fair Summary
Andrew Chen
Creating Email Campaigns that Work: A Focus on Design Elements
Email on Acid
November 12 : (Education)
AIMEC Reporter
SharePoint Saturday Houston: SharePoint 2010 Performance
Brian Culver
Emerging technologies in_adult_education_classroombl (2)
Nell Eckersley
Ppt ch12 marien_4_e-205401
Alexa Wheeler, University of New Mexico Valencia
Mis deberes y derechos como aprendiz sena
majo980319
NGN Company Profile November08
Serdar Salepcioglu
Catálogo xpress - Equinos
Agrovet Market Animal Health
Microfiber goods
Christy andy
UIMP: Sistema Multiagente CBR para Turismo de Salamanca
Gerardo DeMiguel
Future of Composite Apps S-Controls and Beyond
dreamforce2006
Data table for falling steel
Ciyyu Kudu
Taller de autoestima. gestalt branden
Giovanny Sanchez
China placi de circuit imprimat preţul de listă
grace cheng
Ad
Similar to テーマ「最適化 その2」
(20)
PPTX
20150909卒研進捗LT
mohemohe
PPTX
Androidで画像処理リベンジ
Daisuke Takai
PDF
画像を縮小するお話
technocat
PPT
30分で博士号がとれる画像処理講座
Sakiyama Kei
PPT
Hokkaido.pm.casual #03 slide
Tohru Shinohara
PDF
IbisPaintのOpenGLES2.0
Eiji Kamiya
PPTX
php5-gd で画像を弄る話
Yo Ya
PPTX
打倒 PaintsChainer おうちで始めるDCGAN
Choumirai
PDF
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
20160208卒研発表
mohemohe
PDF
Inside png
flare phoenix
PDF
機械学習向けCGデータの量産手法の検討
Silicon Studio Corporation
PDF
Pythonで画像処理をやってみよう!第2回 - 動く物体の抜き出し -
Project Samurai
PPTX
Imagemagickknowhow
Yo Ya
PDF
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜
SSII
PPTX
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
PDF
伝統的工芸品の世界販売戦略を支援するためのバーチャルショウケース~テクスチャ・ツール~
Shogo Muramatsu
PDF
Linqで画像処理
Fumihito Yokoyama
PPTX
Chainerを使って白黒アニメの彩色実験をしてみた
Kubota Eijiro
PDF
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
Project Samurai
20150909卒研進捗LT
mohemohe
Androidで画像処理リベンジ
Daisuke Takai
画像を縮小するお話
technocat
30分で博士号がとれる画像処理講座
Sakiyama Kei
Hokkaido.pm.casual #03 slide
Tohru Shinohara
IbisPaintのOpenGLES2.0
Eiji Kamiya
php5-gd で画像を弄る話
Yo Ya
打倒 PaintsChainer おうちで始めるDCGAN
Choumirai
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
20160208卒研発表
mohemohe
Inside png
flare phoenix
機械学習向けCGデータの量産手法の検討
Silicon Studio Corporation
Pythonで画像処理をやってみよう!第2回 - 動く物体の抜き出し -
Project Samurai
Imagemagickknowhow
Yo Ya
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜
SSII
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
伝統的工芸品の世界販売戦略を支援するためのバーチャルショウケース~テクスチャ・ツール~
Shogo Muramatsu
Linqで画像処理
Fumihito Yokoyama
Chainerを使って白黒アニメの彩色実験をしてみた
Kubota Eijiro
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
Project Samurai
More from technocat
(6)
PDF
GUIアプリに必要な3つのこと
technocat
PDF
perl meets beats.
technocat
PDF
テーマ「perl meets beats」
technocat
PDF
記念撮影で気を付けるべき 4 つのこと
technocat
PDF
テーマ「なんでもないようなこと」
technocat
PDF
テーマ「Hokkaido.pmからのお知らせ」
technocat
GUIアプリに必要な3つのこと
technocat
perl meets beats.
technocat
テーマ「perl meets beats」
technocat
記念撮影で気を付けるべき 4 つのこと
technocat
テーマ「なんでもないようなこと」
technocat
テーマ「Hokkaido.pmからのお知らせ」
technocat
Recently uploaded
(12)
PDF
aidetailseminor111用語解説を徹底的にしまくります。20250814
kamibukuro18
PDF
RailsエンジニアのためのActive Recordの基礎から学ぶ実践的DB連携
csoikawa
PDF
2508slide_townobuse_nagano_chohoobuse.pdf
ssuser31dbd1
PDF
202508株式会社なぞるマーケティング組織開発・学習支援サービス_概要資料
株式会社なぞる
PDF
sustainability_MSOLサステナビリティレポート_202508_日本語版_完成版.pdf
Management Soluions co.,ltd.
PDF
AIゲートウェイ、グローバルトップ12企業のランキングと市場シェア2025.pdf
jyuzou suzuya
PDF
東京商工会議所荒川支部で中小企業講演「今日から使える!省力化・効率化に向けた生成AI活用入門」
竹内 幸次
PDF
2508_ インパクトレポート会社概要_雨風太陽
AmeKazeTaiyo
PDF
世界化学品産業の市場動向と将来展望に関する包括的な調査研究 QYResearch
QY Research株式会社
PDF
【2507】インパクト共創室実績
AmeKazeTaiyo
PDF
【会社紹介資料】株式会社スキルアップ ~エンジニア第一主義!収入・働きやすさ・成長機会でトップクラスを目指す~ 高収入を実現する還元モデル × 自分で選べ...
ysaito4
PPTX
だれでもサクッと使える!採用ピッチ資料テンプレート(解説付き)_20230529_ver1.pptx
setfreeset4
aidetailseminor111用語解説を徹底的にしまくります。20250814
kamibukuro18
RailsエンジニアのためのActive Recordの基礎から学ぶ実践的DB連携
csoikawa
2508slide_townobuse_nagano_chohoobuse.pdf
ssuser31dbd1
202508株式会社なぞるマーケティング組織開発・学習支援サービス_概要資料
株式会社なぞる
sustainability_MSOLサステナビリティレポート_202508_日本語版_完成版.pdf
Management Soluions co.,ltd.
AIゲートウェイ、グローバルトップ12企業のランキングと市場シェア2025.pdf
jyuzou suzuya
東京商工会議所荒川支部で中小企業講演「今日から使える!省力化・効率化に向けた生成AI活用入門」
竹内 幸次
2508_ インパクトレポート会社概要_雨風太陽
AmeKazeTaiyo
世界化学品産業の市場動向と将来展望に関する包括的な調査研究 QYResearch
QY Research株式会社
【2507】インパクト共創室実績
AmeKazeTaiyo
【会社紹介資料】株式会社スキルアップ ~エンジニア第一主義!収入・働きやすさ・成長機会でトップクラスを目指す~ 高収入を実現する還元モデル × 自分で選べ...
ysaito4
だれでもサクッと使える!採用ピッチ資料テンプレート(解説付き)_20230529_ver1.pptx
setfreeset4
テーマ「最適化 その2」
1.
ライトニングトーク
2.
自己紹介 twitter: techno_neko 所属:Hokkaido.pm 仕事:組み込み系
3.
テーマ「最適化」 We love optimize!
4.
前回までのあらすじ カラー画像をモノクロに変換する perl スクリプトの処理時間を 約 40%
まで短縮したところ、 思わぬところからアドバイスと リクエストを頂いたのであった。
5.
お題 「カラー画像をモノクロに変換」 変換!
6.
モノクロに変換 カラー画像 モノクロ画像 ・ ・ ・ ・ ・ ・ Y =
0.29*R + 0.59*G + 0.11*B (※係数は、輝度を求める一般的な値) 0x004E4E4E 0x004E4E4E 0x12345678 0x004E4E4E 0x12345678 0x12345678
7.
実行環境 Mac OS X
10.6.4 CPU Intel Core 2 Duo 2.4 GHz メモリ 4GB 800MHz DDR2 SDRAM perl 5.12.1 テストデータ 6M pixel ( 3008 x 2000 ) 32bit format
8.
モノクロに変換 sub test1 { #
Y = 0.29*R + 0.59*G + 0.11*B my @factor = ( 0.30, 0.59, 0.11 ); my @argb_test = @argb_src; for (my $i=0; $i<scalar(@argb_test); $i++) { my $argb = $argb_test[$i]; # ARGB my $r = ( ($argb >> 16) & 0xFF ); my $g = ( ($argb >> 8) & 0xFF ); my $b = ( ($argb >> 0) & 0xFF ); my $y = int( ($r * $factor[0]) + ($g * $factor[1]) + ($b * $factor[2]) ); $argb_test[$i] = ( ($y << 16) + ($y << 8) + $y ); } push @argb_dst, @argb_test; }
9.
モノクロに変換 TEST1: 24 wallclock
secs (24.00 usr + 0.13 sys = 24.13 CPU) @ 0.04/s (n=1) これが基準タイム
10.
モノクロに変換 〜 前回の最速 map の中を 1
行にまとめてみた # Y = 0.29*R + 0.59*G + 0.11*B my $fr = 0.30 / (1 << 16); my $fg = 0.59 / (1 << 8); my $fb = 0.11 / (1 << 0); my @argb_test = map { 0x010101 * int( (($_ & 0xFF0000) * $fr) + (($_ & 0x00FF00) * $fg) + (($_ & 0x0000FF) * $fb) ); } @argb_src;
11.
モノクロに変換 〜 前回の最速 約 234% 高速化! TEST7:
11 wallclock secs (10.04 usr + 0.28 sys = 10.32 CPU) @ 0.10/s (n=1) TEST1: 24 wallclock secs (24.00 usr + 0.13 sys = 24.13 CPU) @ 0.04/s (n=1)
12.
use integer; を手に入れた! (すべてはここから始まった・・・)
13.
モノクロに変換 〜 その1 use integer; # Y
= 0.29*R + 0.59*G + 0.11*B my $fr = (30 * 256) / 100; my $fg = (59 * 256) / 100; my $fb = 256 - $fr - $fg; #(11 * 256) / 100; my @argb_test = map { 0x010101 * ( ( ( (($_ >> 16) & 0xFF) * $fr ) + ( (($_ >> 8) & 0xFF) * $fg ) + ( (($_ >> 0) & 0xFF) * $fb ) ) >> 8 ); } @argb_src;
14.
モノクロに変換 〜 その1 約 269% 高速化! TEST8:
9 wallclock secs ( 8.88 usr + 0.10 sys = 8.98 CPU) @ 0.11/s (n=1) TEST1: 24 wallclock secs (24.00 usr + 0.13 sys = 24.13 CPU) @ 0.04/s (n=1)
15.
モノクロに変換 〜 その2 use integer; # Y
= 0.29*R + 0.59*G + 0.11*B my $fr = (30 * 256) / 100; my $fg = (59 * 256) / 100; my $fb = 256 - $fr - $fg; #(11 * 256) / 100; $fb <<= 8; # only B my @argb_test = map { 0x010101 * ( ( ( (($_ >> 8) & 0xFF00) * $fr ) + ( ( $_ & 0xFF00) * $fg ) + ( ( $_ & 0x00FF) * $fb ) # $fb is already "<< 8" ) >> 16 ); } @argb_src;
16.
モノクロに変換 〜 その2 約 317% 削減! TEST9:
7 wallclock secs ( 7.52 usr + 0.10 sys = 7.62 CPU) @ 0.13/s (n=1) TEST1: 24 wallclock secs (24.00 usr + 0.13 sys = 24.13 CPU) @ 0.04/s (n=1)
17.
モノクロに変換 〜 最終章 use integer; # Y
= 0.29*R + 0.59*G + 0.11*B my $fr = (30 * 128) / 100; my $fg = (59 * 128) / 100; my $fb = 128 - $fr - $fg; #(11 * 128) / 100; $fg <<= 8; $fb <<= 16; my @argb_test = map { 0x010101 * ( ( ( ( $_ & 0xFF0000) * $fr ) + ( ( $_ & 0x00FF00) * $fg ) + ( ( $_ & 0x0000FF) * $fb ) ) >> 23 #(24 - 1) ); } @argb_src;
18.
モノクロに変換 〜 最終章 約 355% 高速化! TESTA:
7 wallclock secs ( 6.69 usr + 0.11 sys = 6.80 CPU) @ 0.15/s (n=1) TEST1: 24 wallclock secs (24.00 usr + 0.13 sys = 24.13 CPU) @ 0.04/s (n=1)
19.
まとめ
20.
まとめ ・最適化とはロマン
21.
まとめ ・最適化とはロマン ・自分との戦い
22.
まとめ ・最適化とはロマン ・自分との戦い ・危険を伴う
23.
故に、 常に問い続けなければ ならない。 それは・・・、
24.
「そこに愛はあるのかい?」
25.
愛が止まらない ;)
26.
ご清聴、ありがとうございました。