Boost 1.61がリリースされ、新しいCPU/CPUコンピューティング、プラグイン管理、その他のライブラリが提供されました.
2663 ワード
1.60リリースの5ヶ月後、Boostは1.61リリースをリリースし、いくつかの新しいライブラリを追加し、同時に多くのライブラリを更新しました.
Boost 1.61には、4つの新しいライブラリが含まれています. Computeは、OpenCLを使用してマルチコアCPUとGPU演算プラットフォームにC++インタフェースを提供する.OpenCLは、CPUやGPUなどの異機種演算デバイス上で動作するアプリケーションの作成を可能にするオープンスタンダードです.このライブラリは、デバイス(device)、カーネル(kernel)、コマンドキュー(command_queues)などのOpenCLオブジェクトを管理するクラスを提供し、開発者がコンピューティングデバイスを処理したり、コンピューティングデバイスとデータを転送したり、コンピューティングデバイスを反復したり、変換したりすることを可能にする関数も提供します.これにより、デフォルトのコンピューティングデバイスにデータを転送し、データを変換し、最後にシンクホストにコピーすることができます: DLLは、プラットフォーム間で移植可能なプラグインを開発するためのライブラリです.DLLでは、開発者が他のライブラリをロードしたり、ローカル関数や変数をインポートしたり、ライブラリのセグメントやシンボルテーブルをクエリーしたりすることができます.DLLプラグインはextern"C"とBOOST_を使用できます.SYMBOL_EXPORT定義.クライアント・アプリケーションは、DLLプラグインのimport関数を実行することによって、動的リンク・ライブラリ: をロードできます.
DLLは、ロードされたプラグインのライフサイクル、プラグインのアンインストール時にコールバック関数を実行する機能、およびその他の機能をよりよく制御するために、ダイナミックリンクライブラリの参照カウントもサポートします. Hanaは、異機種シーケンスを操作する高度なアルゴリズムを提供するメタプログラミングライブラリである.Boost.のような既存のメタスレッドライブラリと比較する.MPLとBoost.Fusion,Hanaはタイプと値の操作を統一した.Hanaは、タプル(tuple)、無効値を含む容器(optional)、マッピング(map)などの一連の容器タイプを提供し、これらの容器を操作するアルゴリズムの集合、例えば、折り畳み(fold)、圧縮(zip)、扁平化(flatten)などを提供する. Metaparseは、コンパイル時にテキストまたはコードを解析し、タイプ、定数、および実行時に呼び出されるC++関数などを返す解析器を生成するためのライブラリです.Metaparseは特に埋め込み領域の特定の言語を作成するために使用される傾向がある.Metaparseでは、EBNFのような構文を使用して、コンテキスト依存構文を定義できます.もう一つの有名なメタプログラミングライブラリBoostとSpiritの主な違いは後者がランタイム解析器を生成し,Metaparseがコンパイル時解析器を生成することである.
前述したように、Boost 1.61は、Multiprecision(複数精度の数値ライブラリ)、Optional(無効な値のコンテナライブラリを含む)、Geometry(ジオメトリライブラリ)、Fusion(コンテナライブラリ)など、多くの既存のライブラリを更新しています.
Boost 1.61 Brings New Libraries for CPU/CPU Computation,Plugin Management,and More
張龍の本文に対する審査に感謝します.
InfoQ中国語サイトへの投稿または翻訳に参加する場合は、[email protected].新浪微博(@InfoQ,@丁暁昀)、微信(微信:InfoQChina)を通じて私たちに注目することを歓迎します.
Boost 1.61には、4つの新しいライブラリが含まれています.
std::vector
host_vector(10000);
//
// ,
compute::device device = compute::system::default_device();
compute::context context(device);
compute::command_queue queue(context, device);
//
compute::vector
device_vector(host_vector.size(), context); // compute::copy( host_vector.begin(), host_vector.end(), device_vector.begin(), queue ); // compute::transform( device_vector.begin(), device_vector.end(), device_vector.begin(), compute::sqrt
(), queue ); // compute::copy( device_vector.begin(), device_vector.end(), host_vector.begin(), queue );
//
boost::shared_ptr
plugin;
plugin = dll::import
( full_path_to_library, name_of_symbol_to_import, dll::load_mode::append_decorations );
DLLは、ロードされたプラグインのライフサイクル、プラグインのアンインストール時にコールバック関数を実行する機能、およびその他の機能をよりよく制御するために、ダイナミックリンクライブラリの参照カウントもサポートします.
前述したように、Boost 1.61は、Multiprecision(複数精度の数値ライブラリ)、Optional(無効な値のコンテナライブラリを含む)、Geometry(ジオメトリライブラリ)、Fusion(コンテナライブラリ)など、多くの既存のライブラリを更新しています.
Boost 1.61 Brings New Libraries for CPU/CPU Computation,Plugin Management,and More
張龍の本文に対する審査に感謝します.
InfoQ中国語サイトへの投稿または翻訳に参加する場合は、[email protected].新浪微博(@InfoQ,@丁暁昀)、微信(微信:InfoQChina)を通じて私たちに注目することを歓迎します.