N08

Similar documents
スライド 1

スライド 1

Microsoft PowerPoint - kougi7.ppt

本文ALL.indd

▼ RealSecure Desktop Protector 7

VXPRO R1400® ご提案資料

対応 Web サーバ IIS Apache HTTP Server x 環境によるインストール時の Web サーバの検出および利用について詳細は以下製品 Q&A をご覧ください

SP1) Windows SBS 2011 Standard Edition (SP なし または SP1) Windows SBS 2011 Essentials Edition (SP 1) Windows Home Server 2011 (SP 1) Windows Server 2012

AquesTalk for WinCE プログラミングガイド

Apache サーバをすでにインストールしている場合は アンインストールをお勧めします 適切な Apache サーバが ビジネスセキュリティサーバとともにインストールされます 管理コンソール Web ブラウザ : Internet Explorer 6.0 SP2 以降 PDF リーダー : Ado

PRIMERGY RX100 S5 システム構成図 (2009年11月版) 樹系図

HP ProDesk 600 G2 SF

PRIMERGY RX100 S5 システム構成図 (2009年4月版) 樹系図

PRIMERGY RX300 S2 システム構成図


連載講座 : 高生産並列言語を使いこなす (4) ゲーム木探索の並列化 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 準備 問題の定義 αβ 法 16 2 αβ 法の並列化 概要 Young Brothers Wa

インテル® Parallel Studio XE 2015 Composer Edition for Linux* インストール・ガイドおよびリリースノート

Windows Server 2016 Standard/Datacenter/Essentials (SP なし ) 32 ビット /64 ビット対応 対応 Web サーバ IIS Apache HTTP Server 環境によるインストール時の Web サーバの検出および利用につい

CheckPoint Endpoint Security メトロリリース製品について 株式会社メトロ 2017 年 12 月 27 日

平成16年 3月○日

ワークステーション推奨スペック Avid Avid Nitris Mojo SDI Fibre 及び Adrenaline MC ソフトウェア 3.5 以降のバージョンが必要です Dual 2.26 GHz Quad Core Intel 構成のに関しては Configuration Guideli

HA8000シリーズ お詫びと訂正

PRIMERGY システム構成図 (2007年12月版) ハードウェア一覧

PRIMERGY システム構成図 (2008年5月版) ハードウェア一覧

Microsoft PowerPoint - kougi9.ppt


CheckPoint Endpoint Security メトロリリース製品について 株式会社メトロ 2018 年 07 月 25 日


HA8000xH ハードウェア アーキテクチャーガイド

PRIMERGY システム構成図 (2009年1月版) ハードウェア一覧

DPD Software Development Products Overview


ComputerArchitecture.ppt



オンラインドクター

(速報) Xeon E 系モデル 新プロセッサ性能について

( 作成方法 ) 1 メーカーの取扱説明書に記載されている 2 PC 購入店で作成してもらう (PC デポで6000 円 ) 3 リカバリー作成ソフトがインストールされている ⑵ PC 丸ごと ( システムイメージ ) のバックアップ バックアップ方法 注 4 USB 接続の外付け HDD を使用

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

増設メモリ (2006/11/20)

連載講座 : 高生産並列言語を使いこなす (5) 分子動力学シミュレーション 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 問題の定義 17 2 逐次プログラム 分子 ( 粒子 ) セル 系の状態 ステップ 18

CUDA を用いた画像処理 画像処理を CUDA で並列化 基本的な並列化の考え方 目標 : 妥当な Naïve コードが書ける 最適化の初歩がわかる ブロックサイズ メモリアクセスパターン

PowerPoint プレゼンテーション

lll

Microsoft PowerPoint - 11Web.pptx

RaVioli SIMD

2nd-1.dvi

Touch Panel Settings Tool

Windows2000/XPインストール手順

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

Microsoft Word - Dolphin Expressによる10Gbpソケット通信.docx

Zend Server 7 ライセンス情報 2014/12/09 株式会社イグアスソリューション事業部

PRIMERGY TX120 S2 システム構成図 (2009年1月版) 樹系図

自己紹介 湯浅陽一 1999 年より Linux kernel 開発に参加 MIPS アーキテクチャのいくつかの CPU へ Linux kernel を移植

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

Microsoft PowerPoint - kougi8.ppt

インテルの現行ラインナップは と Refresh アーキテクチャはそのままラインナップ強化 第 2 世代 Sandy Bridge 第 3 世代 Ivy Bridge 第 4 世代 Refresh アーキテクチャ刷新 AVX 対応 32nm プロセスルール 性能 電力とも大幅進化 22nm プロセス

Release Note for Media File Player v1.6.3 (Japanese)

PRIMERGY システム構成図 (2008年9月版) ハードウェア一覧

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

目次 Windows 2003 への新規インストール... 3 Windows 2008 への新規インストール... 4 Windows 2012 への新規インストール... 6 Microsoft SQL のサポート... 8 IPv4/IPv6 のサポート... 8 制限事項... 9 Web

MSAC-EX1

連載講座 : 高生産並列言語を使いこなす (3) ゲーム木探索問題 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 概要 17 2 ゲーム木探索 必勝 必敗 引き分け 盤面の評価値 αβ 法 指し手の順序付け (mo

PRIMERGY TX150 S6 システム構成図 (2008年5月版) 樹系図

製品価格 ( 新規購入 ) INT6531 インテル VTune Amplifier XE 2017 for Windows Floating 1-275, ,000 INT6532 インテル VTune Amplifier XE 2017 for Linux Floating 1-27

楽2ライブラリ Smart

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

スライド 1

Operating System 仮想記憶

適応フィルタのSIMD最適化

AquesTalk Mac マニュアル

タイトル情報サーチ 目次 取扱説明書 Version 1.10 タイトル情報サーチの概要 必要なもの インストール 注意事項 音楽 CD のタイトル情報取得の手順 1 USB への記録 2 USB の接続 3 Gracenote データベースへのアクセス 4 USB への保存 5 NissanCon

PRIMERGY システム構成図 (2008年2月版) ハードウェア一覧

CLUSTERPRO SSS 動作環境編

hard.pdf

PRIMERGY TX100 S1 システム構成図 (2009年8月版) 樹系図

tutorial_lc.dvi

かんたんスタートガイド

Express5800/GT110d スペック表 製品名称 Express5800/GT110d 製品型名 N Y N Y N Y 搭載 CPU インテル Celeron プロセッサー G530 インテル Pentium プロセッサー G630 インテ

TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日


ウイルスバスター コーポレートエディション XG システム要件

Control Manager 6.0 Service Pack 3 System Requirements

IntelR Compilers Professional Editions

運用場所静岡庁舎清水庁舎俵沢道路工事センター井川支所 所在地静岡市葵区追手町 5 番 1 号静岡市清水区旭町 6 番 8 号静岡市葵区俵沢 82 番地の1 静岡市葵区井川 656 番地の2 表.1 1デスクト 2ノート型 3デスクト 4ノート型 ップ型 端末 A 台数 ップ型 端末 B 台数 端末

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

rx600_s3_sas.pdf

システム要件 ウイルスバスタービジネスセキュリティサービス 6.5 Windows 用クライアント CPU x86 アーキテクチャの Intel Pentium4 プロセッサまたは互換プロセッサ x64 アーキテクチャのプロセッサ (AMD64 および EM64T に対応 IA64(Itanium

PowerPoint プレゼンテーション

InterSafe Personal_v2.3 ユーザーズガイド_初版

PRIMERGY TX150 S6 システム構成図 (2008年11月版) 樹系図

HULFT-DataMagic Ver2.2.0 製品対応OS

PRIMERGY ECONEL100 S2 システム構成図 (2009年1月版) 樹系図

P3PC

PRIMERGY BX620 S4 システム構成図 (2008年5月版) 樹系図

MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~

Microsoft Word - HOKUSAI_system_overview_ja.docx

目次 目次... 1 はじめに... 3 概要... 4 サポート環境... 5 関数... 6 MEC_OpenDevice... 7 MECDevice_Release... 8 MECDevice_GetFirmVersion... 9 MECDevice_GetCoreTemperature

ソフトウェア更新の前に お客様に より快適に LGL22 をご利用いただくため ソフトウェア更新によるアップグレードを行っております この手順書は LGL22 とパソコンを microusb ケーブルにて接続してソフトウェア更新を行う方法となります ソフトウェア更新は microusb ケーブルによ

システム imac 21.5 インチディスプレイ 3.6GHz i5 Dual core / HT 2.8GHz i7 Quad core / HT ATI Radeon 4850 ATI Radeon HD はいいいえいいえはいいいえ ATI はいいいえ

Transcription:

CPU のキモチ C.John

自己紹介 英語きらい 絵かけない 人の話を素直に信じない CPUにキモチなんてない

お詫び 予告ではCとC# とありましたがやる気と時間の都合上 C++のみを対象とします

今日のネタ元 MSDN マガジン 2010 年 10 月号 http://msdn.microsoft.com/ja-jp/magazine/cc850829.aspx Windows と C++ 高性能アルゴリズムについて調べる

お題 20000 x 20000ピクセルの 32bitカラービットマップを白黒に変換したいんだけど 約 1.5GByte

typedef unsigned char BYTE; // from windef.h // ピクセルを表す構造体 struct Pixel { BYTE Blue; BYTE Green; BYTE Red; BYTE Alpha; 変換処理本体 }; //1 ピクセルをカラーから白黒に変換する関数 void MakeGrayscale(Pixel& pixel) { const BYTE scale = static_cast<byte>(0.30 * pixel.red + 0.59 * pixel.green + 0.11 * pixel.blue); pixel.red = scale; pixel.green = scale; pixel.blue = scale; }

//Q. 1と2どっちが早い? // ループして全ピクセルに対して処理を行う関数 void MakeGrayscale(BYTE* bitmap, const int width, const int height, const int stride) { } //1 つ目の関数 //for (int x = 0; x < width; ++x) //for (int y = 0; y < height; ++y) //2 つ目の関数 //for (int y = 0; y < height; ++y) //for (int x = 0; x < width; ++x) { const int offset = x * sizeof(pixel) + y * stride; Pixel& pixel = *reinterpret_cast<pixel*>(bitmap + offset); MakeGrayscale(pixel); }

話の環境 (CPU) Intel Core 2 Duo E4300 (1.8GHz L2:2MB) E8400 (3.0GHz L2:6MB) 32bitのみ 周波数 1.66 倍 L2 容量 3 倍

ms 34157 35000 30000 25000 20000 E8400 (750MB) E8400 (1.5GB) E4300 (750MB) E4300 (1.5GB) 15000 10000 5000 7812 7765 1025 1047 4266 1766 7106 0 1 2

理由 1のアクセスパターンだとキャッシュミスが頻繁に起きるから (by MSDNマガジン )

Y 軸 X 軸 0 1 2 3 4 5 6 7 8 9 10 11

1 の例 1 4 2 5 3 6 2の例 2 の例 1 2 3 4 5 6

CPU- メモリの構成 (Core2duo の場合 ) CPU レジスタ L1 キャッシュ 1.8GHz 3.0GHz L2 キャッシュ 800MHz 1333MHz チップセット 400MHz (800MHz) 200MHz メインメモリ (DDR2-800)

そもそもクロックって? 1 1 クロック ( 周期 ) 0 時間

DRAM ビット線 ワード線 トランジスタ キャパシタ ( コンデンサ )

SRAM(CMOS 式 6 トランジスタ型 ) ワード線ビット線 VDD ビット線 フリップフロップ

キャッシュって 本当に速いの?

実測

Memtest86+ このへん

Memtest86+ の結果 E8400(3.0GHz) E4300(1.8GHz) L1 42254 MB/s 25503 MB/s L2 19608 MB/s 11834 MB/s Memory 3575MB/s 3403MB/s

45 40 速度 GB/s 35 30 25 20 E8400(3.0 GHz) E4300(1.8 GHz) 15 10 5 0 L1 L2 Memory

マルチコアの 場合は?

void MakeGrayscale(BYTE* bitmap, const int width, const int height, const int stride) { //3つ目の関数(1つ目改) //#pragma omp parallel for //for (int x = 0; x < width; ++x) //for (int y = 0; y < height; ++y) //4つ目の関数(2つ目改) OpenMP //#pragma omp parallel for //for (int y = 0; y < height; ++y) //for (int x = 0; x < width; ++x) { const int offset = x * sizeof(pixel) + y * stride; Pixel& pixel = *reinterpret_cast<pixel*>(bitmap + offset); MakeGrayscale(pixel); } }

3 の例 1 1 2 2 3 3 4 の例 1 2 3 1 2 3

ビルドに失敗 します ( リンクエラー )

Standard Edition 以下の場合は をインストールしないと ビルドできない! Windows SDK for Windows Server 2008 and.net Framework 3.5 http://www.microsoft.com/downloads/details.aspx?familyid=e6e1c3df-a74f-4207-8586-711ebe331cdc

35000 30000 25000 34157 なんじゃコリャ! 21109 E8400 (750MB) E8400 (1.5GB) E4300 (750MB) E4300 (1.5GB) 20000 15281 15000 10000 5000 7812 7765 7106 4266 4687 3657 2188 1025 1047 1766 656 547 938 0 1 2 3 4

本当に キャッシュミス の差なの?

実測

困ったら 取説を見よう 日本語版 ( 結構古い Core 系入ってない ) http://www.intel.co.jp/jp/download/index.htm 英語版 http://www.intel.com/products/processor/manuals/

IA-32 インテル アーキテクチャ ソフトウェア デベロッパーズ マニュアル 上巻 : 基本アーキテクチャ中巻 A: 命令セット リファレンスA-M 中巻 B: 命令セット リファレンスN-Z 下巻 : システム プログラミング ガイド 英語版は下巻も 2 つ

性能モニタリング機能 MSR( モデル固有レジスタ ) にアクセスすると性能に関する情報が取得できるよ でもCPUのモデル (Pentium4 Coreなど ) ごとに使い方が違うよ と書いてある

詳細を見る前に とりあえず使ってみよう int _tmain(int argc, _TCHAR* argv[]) { asm { rdmsr } return 0; }

CPU(x86) の世界 OS カーネル Windows の世界 アプリ レベル0 レベル1 レベル2 レベル3 保護リング ユーザーモードカーネルモード レイヤ OSサービス

WinRing0 というライブラリを 使わせて頂きます OpenLibSys.org http://openlibsys.org/index-ja.html

( 細かい使い方は省略 )

結果 時間切れ!

まとめ 理論より実測