問題タブ [openblas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - OpenBLAS 統合で numpy をコンパイルする
でインストールしようとしnumpy
ていますが、ファイルOpenBLAS
をどのように書き込む必要があるかわかりません。site.cfg
インストール手順に従った場合、インストールはエラーなしで完了しましたが、OpenBLAS で使用されるスレッドの数を 1 から増やすとパフォーマンスが低下します (環境変数 OMP_NUM_THREADS によって制御されます)。
OpenBLAS の統合が完璧かどうかはわかりません。site.cfg
誰でも同じことを達成するためのファイルを提供できますか。
PS: Python ベースのTheanoなどの他のツールキットに OpenBLAS を統合すると、同じマシン上でスレッド数を増やすとパフォーマンスが大幅に向上します。
multithreading - OpenBLASのマルチスレッド線形システムソリューション
Fortran95とgfortranコンパイラを使用したコードがあります。私もOpenMPを使用しており、非常に大きな配列を処理する必要があります。私のコードでは、OpenBLASのソルバーDGTSVを使用して連立一次方程式を解く必要もあります。このソルバーも、それが可能なはずのopenblasを使用して並列化したいと思います。しかし、構文に問題があります。添付の擬似コードを使用すると、4つのCPUすべてがほぼ100%使用されますが、各カーネルが線形方程式を個別に解くのか、それとも部分に分割して並列に計算するのかはわかりません。全体はを使用してコンパイルされますgfortran -fopenmp -lblas a.f95 -o a.out
だから私の擬似コードは次のようになります
ソルバーを並列化して、各カーネルがソルバーの一部を計算するようにするには、何をする必要がありますか?
python - numpy.float16 が OpenBlas/Atlas の機能を壊すのはなぜですか?
float16
わかりました、本当のプリミティブ型ではないことはわかっていますが、Python/numpy によってシミュレートされています。ただし、問題は、それが存在し、Python が関数を使用して配列の乗算でそれを使用できる場合、numpy.dot()
OpenBlas (または ATLAS) が適切に機能しないのはなぜですか? つまり、乗算は機能しますが、並列計算は機能しません。float16
または、別の方法で (私の意見ではより良い)、 OpenBlas/ATLAS が提供する高度な機能を活用できないのに、なぜ Python/numpy が使用を許可するのでしょうか?
python - ATLAS または OpenBLAS で numpy ですか?
ソース コードから ATLAS を構築するのに膨大な時間を費やした後、OpenSUSE 13.1 リポジトリに libopenblas と libatals があることを発見しました。私の質問は
リポジトリに簡単にインストールできる (自分のコンピューターでチューニングする必要がない) "libatlas" は、本当に計算パフォーマンスを向上させますか?
OpenBLAS は ATLAS よりも優れていますか、それとも Linux のフレーバーのリポジトリにある簡単にインストールできる "libatlas" より優れているだけですか? For fast R use OpenBLAS instead: better than ATLAS, trivial to switch on Ubuntu を参照してください。
この投稿Compiling Numpy with OpenBLASに従いましたが、「numpy.core._dotblas」モジュールが見つかりません。さらに、ATLAS と OpenBLAS を同時に使用して Numpy をビルドすることはできませんでした。
ATLAS と OpenBLAS を比較するための .py ファイルまたは bash コードを誰かが投稿できますか? 例えば。
Numpy-1.9 を独自のATLASでビルドし、ソース コードからOpenBLASをコンパイルして、OpenSUSE 13.1 のリポジトリに "libopenblaso" (OpenMP バージョン) と "libopenblasp" (pthreads バージョン) をインストールしました。Numpy-1.9 パッケージを再構築せずに、ATLAS の代わりに OpenBLAS を使用するように Numpy-1.9 に指示できるように、リンクとライブラリを構成する方法。
注:リポジトリに「libatlas」をインストールすると、ATLAS はお使いのコンピューターに合わせて調整されていないため、計算パフォーマンスが大幅に向上しません。したがって、最初に ATLAS をビルドして調整し、次に独自の ATLAS で Numpy をビルドしました。その後、OpenBLAS を Numpy にリンクしようとしましたが失敗しました。
よろしくお願いします!
迅速な返信をありがとう@Dmitry!しかし疑問は解決しない…
インストール
Q: なぜおかしな二重スラッシュ "..64//usr.." があるのですか?
ライブラリをリンクする
Q: いくつかのスタティック ライブラリ ".a" がリンクされているため、この構成は問題ありませんか?
注: 「libopenblasp.so.0」は「zypper in」の後に自動的にリンクされますが、すべての「atlas」ライブラリはコマンドによって手動で作成されます。
lapack - コンパイル/リンク中に Armadillo Wrapper を無効にできない
MinGW32 と OpenBLAS を使用して Windows 32 で Armadillo C++ ライブラリをコンパイルしようとしています。
このトピックに関するすべてのチュートリアルとstackoverflow.comの質問を試しましたが、リンクエラー「`sdot_'への未定義参照」などを生成するwrapper.objのコンパイルを無効にできないようです。これらは、ラッパーによって検出できない BLAS シンボルです。
他の BLAS/LAPACK ライブラリはインストールしていません。cmake の出力で、libopenblas.dll が見つかったことを確認できます。
wrapper.obj のコンパイルとリンクを無効にするにはどうすればよいですか? config.hpp を編集しても効果はありません。
python - ホームディレクトリに OpenBLAS をサポートする Numpy をインストールする
新しいバージョンの Python とそのライブラリ (Numpy、Theano) の一部を OpenBLAS と共に使用するために、サーバーのホーム フォルダーに Python (2.7.8) 環境をローカルにインストールしています。このために、最初usr
にホーム ディレクトリ ( /home/my_home/usr/
)のフォルダーに Python をインストールしました (以下を参照)。
https://mail.python.org/pipermail/tutor/2002-March/012903.html
インストールは順調に進んだようです。起動時に正しいバージョンを表示する Python インタープリターを起動して、これを確認しました。
/home/my_home/opt
これに続いて、ここで説明されているように、OpenBLAS をフォルダーにインストールしました。
...これでもエラーは発生しませんでした。ただし、(上記のリンクの指示に従って) Numpy をインストールしようとすると、次のエラーが発生します。
のパッケージを見つけてselect
、コンパイルしてインストールするのが簡単だと思います。前回 Python 2.7.6 をローカルのホーム ディレクトリにインストールしたときは、そのようなエラーは発生しなかったため、これが正しいことかどうかはわかりません。私が理解しているように、select
モジュールは Python と一緒にインストールされているはずです。
これは、ホーム フォルダーに同様の方法で IPython をインストールしようとしたときにも発生します。を提供するライブラリImportError
が異なります。
これらは、Python のインストール中に犯した可能性のある、より一般的な間違いに関連しているのではないかと考えています。この問題に関するアドバイスをいただければ幸いです。追加情報が役立つかどうかお知らせください。ありがとう!
python - numpy をインポートできません: エラー: /usr/lib/liblapack.so.3: 未定義のシンボル: gotoblas
numpy をインポートしようとすると、次のエラーが発生します。
import numpy: lapack_lite.so: undefined symbol and GotoBLAS error when installed matplotlib with pip in a virtualenv on debian wheezy でエラーを投稿したソリューションを既に試しました
私はすでにすべてのオプションを試しました:
Ubuntu 14.1 と python 2.7 を使用しています
numpy - SciPy と NumPy の ATLAS と共に OpenBLAS の RPM インストール?
RPMパッケージのみを使用して(したがって、pip、手動ビルドなどはありません)、NumPyとSciPy(Python 3、Fedora 20の下)をリンクしようとしています。
いろいろ試しましたが、
通常の「ATLASを使用しています」という情報が常に表示されます。
ここ、ここ、および他のいくつかのリソースでalternatives
提案されているように、 で遊んでみましたが、常に空です。にリンクする代替案を追加しようとしましたが、上記のテストの動作は変わりませんでした。alternatives --list | grep blas
libblas.so.3
libopenblas.so
また、SciPy/NumPy がこれらのライブラリをロードする場所と方法を見つけようとしましたが、見つかりませんでした。
私は持っていません_dotblas.so
(これに関連するさまざまな指示でよく言及されています)。ただし、_dotblas.cpython-33m.so
、cblas.cpython-33m.so
、およびfblas.cpython-33m.so
がありますが、リンク先はありませんlibblas.so.3
(前のリンクで示唆されているように)。
ATLAS を削除すると、さらに多くのパッケージ (Gimp など) がドラッグされるため、ATLAS を削除することはできません。
また、仮想マシン内に新しい Fedora 20 をインストールしました。yum の NumPy/SciPy は ATLAS を主張しました。それらを削除してpipからインストールすると、OpenBLASを使用しても問題はありませんでした(ただし、ATLASを簡単に切り替えることはできませんでした)。簡単な切り替えで両方が欲しいので、さまざまなテストを実行してこれら2つのパフォーマンスを比較できます.yumとpipの間で(再)インストールすることは明らかに解決策ではありません.
将来の更新を容易にするために、またいくつかの異なるマシンでこれが必要なため、再構築と手動インストールを避けたいと考えています。変更を加えるたびに大規模な再インストールを行わずに、これらのモジュールにいずれかのライブラリをロードするように指示するのは、奇妙なことだとは思えません。