本ウェブサイトで利用するCookieには、第三者のCookieも含まれる可能性があります。Cookieの設定は、いつでもご利用のブラウザの設定よりご変更いただけます。 このサイトを使用することにより、当社の Cookieポリシー に同意したものとみなされます。 同じ処理をC++とHalideで記述して、コード分量と実行時間を比較する。 Photo Credit: Jonathan Ragan-Kelley, Andrew Adams, Sylvain Paris, Marc Levoy, SamanAmarasinghe, Frédo Durand. パソコンを始めとして、様々な電子機器で、高度な画像処理が求められるようになってきている。 スマートフォンのアプリやデジカメでも、本格的なフォトレタッチ機能が搭載されており、これらを利用している人も多いだろう。こうした画像処理プログラムの開発で
はじめに 昨今マルチコアCPUは一般化し、並列化処理の重要度がどんどん高まってきました。この流れはもう変わらないでしょう。ですから、我々開発者にとって並列処理の知識は絶対に必要なものです。とはいえ、日々の業務をこなしつつ資料が少ない並列化処理を身につけることは大変です。 そこで今回筆者は、並列化処理を実現するOpenMPの入門記事を書くことにしました。OpenMPを選択した理由は、一番効率が求められているのはC/C++プログラマーだと考えたからです。C/C++プログラマーの方々が並列処理を習得するお手伝いができれば幸いです。 なお、この連載で解説に使用するサンプルコードはあくまでもOpenMPの基礎を理解するための便宜的なものであり、実務でOpenMPを使用する際にはよく理解してから用途に適したプログラミングを行ってください。 対象読者 筆者が想定している読者はCの基本的文法をマスターし、
コンシューマ向けゲーム開発に携わって結構な年数が経過しました。 これまでは恵まれていたのか、STLを使える環境にいた*1ので特に気にしていなかったのですが、どうやら場所によってはSTLはゲーム開発向きではないらしく使用を禁止される事もあるようです。 おかしいですね。私、STL使ってコンシューマ向けのゲーム作ってきましたけど。 確かにSTLはその特性と使用方法を知らないと痛い目にあいます。特にコンシューマ機のメインメモリ容量はPCに比べて圧倒的に少ないです。その少ないメインメモリ上に実行バイナリやヒープ領域などを展開しなければなりません。メモリ管理に対してシビアになるのは当然で、templateは使用方法によってはバイナリサイズが増大するので使用をある程度制限する事は仕方ありません。 また、std::listや、std::map等は使えば使う程内部でメモリを平然と分断してくれるので、ヒープ領
1つ前の記事(と言っても11ヶ月前のですがw)の解決方法です. いえ,解決自体はもっと前にしてたのですがメモをしていなかったので. 参考: compiler bug in msvc10 with std::copy _HAS_ITERATOR_DEBUGGING | Microsoft Docs これによると,MSVC2010のstd::copyはInputIteratorにinput_iterator_tagかつOutputIteratorにoutput_iterator_tag,又は両方ともrandom_access_iterator_tagのどちらかの組合せを要求しているのだそうです. それに適合しないstd::copyの使い方をしているためコンパイルエラーになっているようです. そしてそのチェックはITERATOR DEBUG LEVELの値によって行なわれます. つまり,そのチェ
Associated Types graph_traits<adjacency_list>::vertex_descriptor and adjacency_list_traits<EdgeList, VertexList, Directed>::vertex_descriptor adjacency_list と結びついた頂点記述子の型。 graph_traits<adjacency_list>::edge_descriptor and adjacency_list_traits<EdgeList, VertexList, Directed>::edge_descriptor adjacency_list と結びついた辺記述子の型。 graph_traits<adjacency_list>::vertex_iterator vertices() によって返されるイテレータの型。 もし V
While BoostCon ’09 was awesome, at this point it’s pretty obvious that I won’t be able to report on each day in the detail I started out with. I will try to wrap it all up in one article, soon. Until then, if you’re a programmer type, please have a look at C++Next, a new site I have started about advanced C++. Cheers! May 4, 2009� KickOff Monday morning in Aspen Hey, this is going to be fun! I su
MicrosoftがC++ AMPの仕様書を公開したようです. C++ AMP open spec published http://blogs.msdn.com/b/nativeconcurrency/archive/2012/02/03/c-amp-open-spec-published.aspx C++ AMPはMicrosoftが提案するC++の拡張で,GPUでの並列計算を容易に使える仕組みです.今の時点では,Visual Studio 11のテクノロジープレビュー版を入れることで使うことが出来ます. 概要は下記がわかりやすいです. Overview of C++ Accelerated Massive Parallelism (C++ AMP) http://msdn.microsoft.com/en-us/library/hh265136(v=vs.110).aspx サンプル
この記事は、インテル® ソフトウェア・ネットワークに掲載されている「32 OpenMP traps for C++ developers」 (http://software.intel.com/en-us/articles/32-openmp-traps-for-c-developers/) の日本語参考訳です。 はじめに マルチコアシステムが急速な広がりをみせており、並列プログラミングへの早急な対応が求められています。しかしながら、経験豊富な多くの開発者にとってもこれは新しい分野です。既存のコンパイラーとコード・アナライザーでも、並列コードの開発中に一部の問題を発見することはできますが、多くの問題は検出できません。この記事では、OpenMP* を使用する並列プログラムが正しく動作しない原因となるさまざまな問題について説明します。 概要 並列プログラミングが登場したのはかなり以前のことです
雲は、C++ は結構昔から知っている(使いこなせているかどうかは。。。)のだけど、C# を知ってからプロパティが無いことに結構不満でした。 でも、たまたま、今日、C++でプロパティを使う方法を発見してびっくりしました。C++ の標準規格のみを使ってプロパティを実現する方法。 C++ implementation of the C# Property and Indexer with Accessor-Modifiers http://www.codeproject.com/KB/cpp/cpp_property_indexer.aspx ついでに、Microsoft の独自拡張を用いてC++でプロパティを実現する方法。 __declspec(property) http://docwiki.embarcadero.com/RADStudio/ja/Declspec(property) 雲は
Open64 Steering Group(OSG)は11月11日、オープンソースのコンパイラ「Open64 5.0」をリリースしたと発表した。Open64はSGIのMIPSPro向けコンパイラ「Pro64」を由来とするオープンソースのC/C++およびFortran77/95/2003コンパイラ。対応アーキテクチャはx86およびx86_64、MIPS、IA-64、CUDAなどで、Linux環境で動作する。ライセンスはGPL 2。 Open64は米デラウェア大学や米Intelの支援を受けたOpen Research Compiler、米HPなどが開発に関わっており、現在はOSGが開発を主導している。当初はIA-64のみをサポートするコンパイラだったが、多くの拡張が加えられたことにより現在ではx86やx96_64などのアーキテクチャもサポートしている。OpenMPのサポートやプロシージャ間最適
本日社内向けのTechTalkにて、並列・並行プログラミングに関する話を行いました。 昨今、プログラムの並列化はなくてはならないものとなっています。しかし、そのプログラミング環境は依然としてロックを用いたものが主流です。今回の発表の主張を端的に申し上げますと、 “Locks must go!” ということになります。並列プログラミングに銀の弾丸はありません。しかし、ロックは別の何らかの安全性を確保したプログラミングモデルで置き換えられなければいけません。そうでなければ、再現しにくいバグに苦しめられ、終電を逃す日々と決別することはできないでしょう。また、ロックによるプログラミングの抱える本質的問題にも言及しています。 この界隈の最新の動向として、去年OOPSLA’10にて発表されたConcurrent Revisionsについての解説も行なっております。また、弊社研究開発において、先日Con
C++, BoostC++ の定番ライブラリ Boost はいまや不動の地位を得ていますが、機能が多岐にわたりすぎていて、何から使い始めていいのか分からずにとっつきにくい印象がありました。Boost 関連の情報を探していて、Boostを使用しているプロジェクト - boostjp というページを見つけました。ここから、boost.org 上の次の3ページ製品情報オープンソースプロジェクト会社にリンクされていす。このページでは、様々な製品やプロジェクトで利用されている Boost のライブラリが紹介されています。せっかくなので、利用数ランキングを集計してみました。ランキング1〜10位早速1位から10位を紹介!!順位コンポーネント名利用数1Boost.SmartPointers241Boost.Bind243Boost.Regex204Boost.Function175Boost.String
目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 23095 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++・C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く