You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
非線形最適化の基礎posted with カエレバ福島 雅夫 朝倉書店 2001-04-01 Amazonで探す楽天市場で探すYahooショッピングで探す 目次 目次 はじめに Ceresにおける導関数の指定方法 数値演算的に導関数を与える方法 解析的に導関数を与える方法 その他の導関数の求め方 複雑な最適化の実施 より深く最適化を学びたい人は 参考資料 MyEnigma Supporters はじめに 先日、上げた記事の続きです。 myenigma.hatenablog.com 今回は、もう少しCeresのシステムの詳しい説明と、 複雑な最適化を実際に実装してみたいと思います。 Ceresの基本的な部分は先程の記事を参照下さい。 Ceresにおける導関数の指定方法 Ceresは、他の最適化のライブラリと同様に、 評価関数の各変数における導関数を使って、最適化を実施します。 よって、精度が
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 自分で作ったオープンソースな C++ ライブラリ, メモリリークやバグの少ない状態で, いろいろな人に安心して喜んで使ってもらえるように, 普段から内面をキレイに保っておきたいですよね! ここでは C++ のコードを内面からキレイに保つレシピを集めてみました. (追記) @MitsutakaTakeda さんの C++ コードのデトックスも合わせて読んで, この春, 一歩先行くぬけがけ美ワザを極めちゃお! http://qiita.com/MitsutakaTakeda/items/6b9966f890cc9b944d75 Instru
Unite 2015 Tokyo の講演で詳細を話せなかったのが心残りだったので、大量のオブジェクトの更新処理についてこの場で書いてみます。 主に C++ で、簡単なパーティクルエンジンを作り、それを SIMD を用いて高速化する手順を解説します。 話を簡単にするため、以下の前提を設けます。 ・x86 環境のみ考慮 ・パーティクルは位置と速度のみを保持 ・パーティクル同士の相互衝突は総当たりで計算 総当たりなので超遅いですが、実装は容易で SIMD による恩恵を受けやすく、題材として手頃です。 この記事の中で引用されているソースの元は こちら、ビルド結果 (上のスクリーンショットのデモプログラム) は こちら になります。 相互衝突するパーティクルを実装する場合、お互いの距離を計算し、当たっていたらめり込み具合に応じて押し返す、というのがよくある実装だと思います。まずはそれをストレートに
お詫び アライン忘れてましたごめんなさい、でも時間あんまり変わってないから許して・・・ https://t.co/JNtq2U2kMq— 青子守歌 (@aokomoriuta) April 29, 2015 では本編どうぞ↓ 本編 若干話題に乗り遅れた感ありますが。 d.hatena.ne.jp けど、SSEも知らねー、SIMDも知らねー、なんか俺が書いたアルゴリズム遅いけどとりあえずOpenCLとかで高速化しよっかなーとかね、甘ったれてんじゃねえよ。CPUをもっと使いきれよ。お前のアオいコードのせいでCPUが泣いてるよ。っていう話ですよ。 GPGPUなんてのはSIMDを使い切った後の話でしょ。 GPGPUするのにGPUのパワーとメモリが足りませんとか言う前にまずSIMDからだろ。 とか言われてたので、検証することにした(やっつけ)。 環境 OS: Windows 7 Profession
H2Oの内部では,数値,文字列のフォーマッタとしてsprintfが用いられています. 我々は,最近までsprintf専用ソースコード変換器, qrintfのチューニングを行っていました. 本稿ではqrintfの概要と今回適応した工夫,そして今後の課題についてまとめておきます. 1. qrintfとは? qrintfとはCコンパイラの1つであるgccのプリプロセッサのラッパーであり,snprintfを高速化するソースコード変換器です. 本稿執筆時点でのqrintfの変換対象はsprintfとsnprintfです.以下本文中では特にことわりのない限りsprintfと記述した場合sprintf, snprintfの両方を指します. qrintfはソースコードに出現するsprintfで利用するフォーマット文字列を解析し,型ごとに用意された関数呼出にコードを書き換えsprintfの高速化を行います.
ゲームプログラミングにおけるC++の都市伝説 † この記事は、C++ Advent Calendar 2012 22日目の記事です。 Prev 21日目の記事 CEANによる配列操作 Next 23日目の記事 構造化並列プログラミング 時間の関係で3つの都市伝説しかご紹介できませんでしたが、またの機会があれば他の都市伝説についてもお話したいと思います。 2012/12/22 written by h.godai @hgodai 目次 初めに 都市伝説1 C++は遅いのでゲームには向いていない 都市伝説2 boost::poolはゲームには向いていない 都市伝説3 boostライブラリは怪しいライブラリだ。使うと呪われる。 ↑ 初めに † かつて、8bit時代はゲームのプログラムはアセンブラが主流でした。やがて、ゲームのプラットフォームが16bitから32bitになるに従い、C言語でゲームが
Yaminabe simd 1. Intel AVX で SIMD 入門 2012/9/15 (Sat) 第2回 闇鍋プログラミング勉強会 Yuki Kawaguchi 1 2. 自己紹介名前: Yuki Kawaguchitwitter: @kawa0810はてな id: kawa0810・学生時代の研究 並列・分散処理,GPGPU,数値計算関係・仕事 orz バックアップソフトの開発・サポート 2 3. 自己紹介名前: Yuki Kawaguchitwitter: @kawa0810はてな id: kawa0810・学生時代の研究 並列・分散処理,GPGPU,数値計算関係・仕事 バックアップソフトの開発・サポート 3 4. 本題4 5. SIMD とは?・Single Instruction Multiple Data・1回の命令で複数のデータを処理する命令形式 配列 x と配列 y
6. 目標目標 OpenCVによりも高速なプログラムを簡OpenCVによりも高速なプログラムを簡 単につくれる書き方を覚えよう単 くれる書き方を覚えよう 出来るようになること ・高速コピー src.copyTo(dest);高速コピ src.copyTo(dest); ・高速な加減乗算 dest = src1 + src2; ・高速型変換 src.convert(dest,CV_16U); ・高速BGR2RGB cvtColor(src,dest,CV_BGR2RGB); ・高速BGR2Gray cvtColor(src,dest,CV_BGR2Gray); ※出来ないこと 整数演算だけ 浮動小数点の命令は使わない 比較演算は使整数演算だけ,浮動小数点の命令は使わない,比較演算は使 わない,水平演算は使わない,AVXは含まない(SSE4.1まで) 7. 目的目的 を使えば 化は難しくないよ
最適化をするにはまず相手を知ることから始める必要があります. Windowsでは非常に簡単に使えて有用なプロファイラとしてAMDのCodeAnalystがあります. IntelのVtuneのような高機能さはありませんが, とてもお手軽です. AMD製ですがIntelのCPUが乗ったパソコンでも使えます. 無料ですし, ぜひインストールしましょう. よく「開発者がMac(or Linux)を使う○○の理由」なんてのがありますが, このGUIによるお手軽さは「Windowsを使う理由」(の一つ)になってもいいんじゃないかと思います(まあMacにはXCodeがありますが). #include <stdio.h> double s1(int n) { double r = 0; for (int i = 0; i < n; i++) { r += 1.0 / (i + 1); } return r
スクリプト言語処理系を高速化したくてしたくてたまらない少年少女に届け。表題の通りスクリプト言語処理系の高速化について書きます。対象言語はBrainf*ckにします。Brainf*ckというのは Brainf*ck Brainfuck - Wikipedia というような言語です。要は処理系を実装するのが簡単なおもちゃ言語。おもちゃ言語ゆえに他のどんな実用的スクリプト言語処理系にも出てくるような基本的な処理だけでできているので、Brainf*ck処理系の高速化で有用なテクニックは他の処理系でもうんたらかんたら。 じゃあまず叩き台になるような処理系を書いてみましょう。言語はC++です。JavaだのPythonだので高速な処理系を記述するテクニックやらなんやらというのもありますけども、まずはごく簡単にCPUやらメモリといったものと仲の良い言語で記述することで理解を深めましょう。本当はC言語の方が
BOOK: WEB+DB Press TITLE: 常駐型サーバーのデバッグ手法(ドラフト版) AUTHOR: (株)プリファードインフラストラクチャー 太田一樹 *注: この文章はWEB+DB PRESS Vol.48に掲載された記事のドラフト版です はじめに 今回はデバッグ関連特集ということで、常駐型サーバープログラムを作成する際のハマりどころやそれに対する解析方法・解析ツール・対策を、実際の経験を交えながら紹介したいと思います。 筆者は(株)プリファードインフラストラクチャーでインメモリ分散検索エンジン「Sedue (セデュー)」を開発しています。モバイル向け検索エンジン「エフルート」や、2008/11/6にリニューアルされました「はてなブックマーク2」などの検索バックエンドとして使われております。 この検索エンジンはいくつかの常駐型サーバープログラムから構成されており
google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く