フォーラム

Rosetta 2 / AppleシリコンM1でのデータサイエンス(RおよびSPSS 26など)?

istvan60

オリジナルポスター
2020年11月17日
  • 2020年11月17日
特定のソフトウェアが機能するかどうかをテストするベンチマークとテストを含む投稿がたくさんあることは知っていますが、このスレッドをデータサイエンスアプリに捧げたいと思います。 R、RStudio、SPSS、Python(ネイティブで動作することはわかっています)、QGIS、および研究者がイラストを作成するために使用する追加のソフトウェア。 CorelDraw、Gimp...。

新しいM1MacbookでRまたはSPSSを試したことがありますか?Rosetta 2ではこれらのいずれかが正常に機能します(高速/低速/まったく機能しません)。ネイティブのARMバージョンはまだないはずです。または、CorelDrawも試した人はいますか?

新しい質問と回答を投稿することを躊躇しないでください、しかしデータサイエンスアプリに焦点を合わせてください。

ここのトピックに関連する有用な議論があります

GitHub-ThatGuySam / doesitarm:🦾AppleSiliconと新しいApple M1Macの報告されたアプリサポートのリスト

🦾AppleSiliconと新しいAppleM1Macの報告されたアプリサポートのリスト-GitHub-ThatGuySam / doesitarm:🦾AppleSiliconと新しいApple M1Macの報告されたアプリサポートのリスト github.com

M1 MacBook pro13はデータをサポートしていますか…-AppleCommunity

Discussions.apple.com

RはAppleシリコンで動作しますか? -Rブログ

developer.r-project.org

Rosetta 2 / AppleシリコンM1でのデータサイエンス(RおよびSPSS 26)?

みなさん、こんにちは。新しいM1 MacbookでRまたはSPSSを試してみましたか。ネイティブのARMを持っている人はいないと思いますが、Rosetta 2ではこれらのいずれかが正常に機能します(高速/低速/まったく機能しません)。 www.researchgate.net
しかし、まだ答えはありません。
反応:Mbrum

agibb

2004年10月17日
  • 2020年11月18日
によると これ Regの記事では、RはAppleSiliconで動作する前にFortranコンパイラを待っています。 JuliaLanguageはその「移植」作業を追跡しています ここ。
反応:pldelisle

istvan60

オリジナルポスター
2020年11月17日


  • 2020年11月18日
やあ!
Appleシリコン用のネイティブFortranコンパイラが出ています。
https://www.nag.com/news/first-fortran-compiler-apple-silicon-macs

ただし、Rosetta2で機能するRのテストを見ると非常に便利です。
反応:pldelisle

istvan60

オリジナルポスター
2020年11月17日
  • 2020年11月29日
レマンは言った:Rはロゼッタの下で私にとって素晴らしい働きをします。私もそれをネイティブに構築することができましたが、一部のパッケージがブロックされています(特に地球科学のもの)。




商用コンパイラの可用性は実際には役に立ちません。 gcc(iOSで実行することにほとんど関心がなかったため、これまで誰もそれを移植する必要はありませんでした)またはFlang(まだ少なくとも半年かかるでしょう)が必要です。ただし、gccの暫定バージョンが利用可能であり、十分に機能しているようです。
それを聞いてうれしいです!また、パフォーマンスの変化に気づきましたか?私は通常、RAMを大量に消費するスクリプトと大量の反復を実行しているため、処理速度とRAM処理の両方が問題になります。 Rosetta2でのパフォーマンスに疑問があります。

それについて何か意見はありますか? NS

レマン

2008年10月14日
  • 2020年11月29日
istvan60は言った:それを聞いてうれしい!また、パフォーマンスの変化に気づきましたか?私は通常、RAMを大量に消費するスクリプトと大量の反復を実行しているため、処理速度とRAM処理の両方が問題になります。 Rosetta2でのパフォーマンスに疑問があります。

それについて何か意見はありますか?

Rosettaの下でのM1のRは、16フィートのMBPで実行されているRよりも高速です。しかし、それはあなたが何をするかに依存すると思います。非常に大量のRAMを必要とする状況ではテストしていません。試してみたいテストやスクリプトがあれば、喜んでそれを行うことができます。メッセージを送ってください。

istvan60

オリジナルポスター
2020年11月17日
  • 2020年11月30日
メディアアイテムの表示 'data-single-image =' 1 '>
下:
Rバージョン4.0.3(2020-10-10)
プラットフォーム:x86_64-apple-darwin17.0(64ビット)


install.packages( 'benchmarkme')
install.packages( 'benchmarkmeData')
ibrary(benchmarkme)

get_cpu()
#「Intel(R)Core(TM)i5-7360U CPU @ 2.30GHz」

get_ram()
#17.2 GB

res =ベンチマーク_std()

#プログラミングベンチマーク(5つのテスト):
3,500,000フィボナッチ数の計算(ベクトル計算):0.263(秒)。
1,000,000ペアの最大公約数(再帰):0.682(秒)。
3,500 x 3,500ヒルベルト行列の作成(行列計算):0.338(秒)。
3,000 x 3,000テプリッツ行列(ループ)の作成:1.17(秒)。
60 x 60マトリックス(混合)でのEscoufiersメソッド:1.21(秒)。

#マトリックス計算ベンチマーク(5つのテスト):
5,000 x 5,000マトリックスの作成、変換、変形:0.629(秒)。
2,500 x2,500正規分布ランダム行列^ 1,000:0.149(秒)。
7,000,000個のランダム値の並べ替え:0.706(秒)。
2,500 x 2,500の外積行列(b = a '* a):10.8(秒)。
線形登録5,000 x 500マトリックス(c = a b '):0.837(秒)。

#行列関数のベンチマーク(5つのテスト):
3,000 x 3,000行列のコレスキー分解:5.47(秒)。
2,500 x 2,500のランダム行列の行列式:6.64(秒)。
640 x 640ランダム行列の固有値:0.916(秒)。
2,500,000を超えるランダム値のFFT:0.322(秒)。
1,600 x 1,600のランダム行列の逆行列:5.4(秒)。

upload_results(res)
一時ファイルの作成
システム仕様の取得。 Macではこれに時間がかかる場合があります
結果のアップロード
アップロード完了
追跡ID:2020-11-29-22273922
[1] '2020-11-29-22273922'

プロット(解像度)
あなたは749台のマシンのうち183位にランクされています。
Returnキーを押して、次のプロットを取得します
あなたは747台のマシンのうち467台にランクされています。
Returnキーを押して、次のプロットを取得します
あなたは747台のマシンのうち660台にランクされています。

メディアアイテムの表示 'data-single-image =' 1 '>
メディアアイテムの表示 'data-single-image =' 1 '>
メディアアイテムの表示 'data-single-image =' 1 '>


私はあなたがどうなるか本当に興味があります。

添付ファイル

  • メディアアイテムを表示 'href =' tmp / attachments / 1606725365392-png.1683205 / '> 1606725365392.png'file-meta '> 41.8 KB・ビュー:96
NS

レマン

2008年10月14日
  • 2020年11月30日
ネイティブRで実行した結果は次のとおりです

コード:R version 4.0.3 (2020-10-10) -- 'Bunny-Wunnies Freak Out' Copyright (C) 2020 The R Foundation for Statistical Computing Platform: arm-apple-darwin20.2.0 (64-bit) > res <- benchmarkme::benchmark_std() # Programming benchmarks (5 tests): 3,500,000 Fibonacci numbers calculation (vector calc): 0.112 (sec). Grand common divisors of 1,000,000 pairs (recursion): 0.26 (sec). Creation of a 3,500 x 3,500 Hilbert matrix (matrix calc): 0.146 (sec). Creation of a 3,000 x 3,000 Toeplitz matrix (loops): 0.597 (sec). Escoufier's method on a 60 x 60 matrix (mixed): 0.598 (sec). # Matrix calculation benchmarks (5 tests): Creation, transp., deformation of a 5,000 x 5,000 matrix: 0.245 (sec). 2,500 x 2,500 normal distributed random matrix^1,000: 0.113 (sec). Sorting of 7,000,000 random values: 0.606 (sec). 2,500 x 2,500 cross-product matrix (b = a' * a): 9.54 (sec). Linear regr. over a 5,000 x 500 matrix (c = a b'): 0.799 (sec). # Matrix function benchmarks (5 tests): Cholesky decomposition of a 3,000 x 3,000 matrix: 5.21 (sec). Determinant of a 2,500 x 2,500 random matrix: 1.78 (sec). Eigenvalues of a 640 x 640 random matrix: 0.476 (sec). FFT over 2,500,000 random values: 0.113 (sec). Inverse of a 1,600 x 1,600 random matrix: 1.45 (sec).
行列演算にはもう少し最適化が必要だと感じています。彼らはもっと速く行くことができると確信しています。

添付ファイル

  • m1-native-r.pdf246.2 KB・再生回数:290
NS

レマン

2008年10月14日
  • 2020年11月30日
P.S.そして、これがロゼッタの下で実行された結果です。 RosettaにはRインタープリターにいくつかの問題があるようです(私は驚かないでください)。したがって、純粋なRで実装された多くのアルゴリズムに依存している場合は、問題が発生する可能性があります。しかし、それは一般的なシナリオではないと思います。

もう1つの観察結果は、一部の行列演算がネイティブよりもRosettaで高速に実行されることです。これは、IntelのcodegenがSIMDコードを出力するのに対し、ARMは出力しないためだと推測します。これは、初期のFortranポートの問題であるか、ソースがIntel用に最適化されているが、ARM用には最適化されていない可能性があります。これが修正されたら、ネイティブで実行されている健全なブーストも取得できるはずです。

コード:R version 4.0.3 (2020-10-10) -- 'Bunny-Wunnies Freak Out' Copyright (C) 2020 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin17.0 (64-bit) benchmarkme::get_cpu() sysctl: unknown oid 'machdep.cpu.vendor' $vendor_id character(0) attr(,'status') [1] 1 $model_name [1] 'VirtualApple @ 2.50GHz processor' $no_of_cores [1] 8 # Programming benchmarks (5 tests): 3,500,000 Fibonacci numbers calculation (vector calc): 0.177 (sec). Grand common divisors of 1,000,000 pairs (recursion): 4.67 (sec). Creation of a 3,500 x 3,500 Hilbert matrix (matrix calc): 0.205 (sec). Creation of a 3,000 x 3,000 Toeplitz matrix (loops): 1.21 (sec). Escoufier's method on a 60 x 60 matrix (mixed): 66.5 (sec). # Matrix calculation benchmarks (5 tests): Creation, transp., deformation of a 5,000 x 5,000 matrix: 0.416 (sec). 2,500 x 2,500 normal distributed random matrix^1,000: 0.15 (sec). Sorting of 7,000,000 random values: 0.62 (sec). 2,500 x 2,500 cross-product matrix (b = a' * a): 7.24 (sec). Linear regr. over a 5,000 x 500 matrix (c = a b'): 0.609 (sec). # Matrix function benchmarks (5 tests): Cholesky decomposition of a 3,000 x 3,000 matrix: 4 (sec). Determinant of a 2,500 x 2,500 random matrix: 1.99 (sec). Eigenvalues of a 640 x 640 random matrix: 0.446 (sec). FFT over 2,500,000 random values: 0.12 (sec). Inverse of a 1,600 x 1,600 random matrix: 1.61 (sec). NS

LaskaD

2021年1月2日
  • 2021年1月2日
レマン、ご報告ありがとうございます。

参照BLAS / LAPACK線形代数ライブラリを実行するように構成されたRを使用していますか? macOSの一部として出荷されているAppleのacceleratedフレームワークからライブラリに切り替えることで、はるかに高速な行列操作が可能になります。

ここを参照してください: https://mpopov.com/blog/2019/06/04/faster-matrix-math-in-r-on-macos/

Apple Accelerate BLAS / LAPACKライ​​ブラリを使用してM1マシンのベンチマークを確認することは非常に有益です。

これは、私のコンピューターである2014年半ばのMacBook Proで、アクセラレーションライブラリを使用したものと同じベンチマークです。一部の行列演算は、上記のM1または2017MBPの結果よりも1桁以上高速です。


> sessionInfo()
Rバージョン4.0.2(2020-06-22)
プラットフォーム:x86_64-apple-darwin17.0(64ビット)
実行中:macOS Catalina 10.15.7

マトリックス製品:デフォルト
BLAS:/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK:/Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib

..。

> get_cpu()
$ vendor_id
[1] 'GenuineIntel'

$ model_name
[1] 'Intel(R)Core(TM)i7-4870HQ CPU @ 2.50GHz'

$ no_of_cores
[1] 8

> get_ram()
17.2 GB

> res =ベンチマーク_std()
#プログラミングベンチマーク(5つのテスト):
3,500,000フィボナッチ数の計算(ベクトル計算):0.277(秒)。
1,000,000ペアの最大公約数(再帰):0.616(秒)。
3,500 x 3,500ヒルベルト行列の作成(行列計算):0.407(秒)。
3,000 x 3,000テプリッツ行列(ループ)の作成:1.35(秒)。
60 x 60マトリックス(混合)でのEscoufierの方法:0.902(秒)。
#マトリックス計算ベンチマーク(5つのテスト):
5,000 x 5,000マトリックスの作成、変換、変形:0.702(秒)。
2,500 x2,500正規分布ランダム行列^ 1,000:0.157(秒)。
7,000,000個のランダム値の並べ替え:0.639(秒)。
2,500 x 2,500外積行列(b = a '* a):0.188(秒)。
線形登録5,000 x 500マトリックス(c = a b '):0.0213(秒)。
#行列関数のベンチマーク(5つのテスト):
3,000 x 3,000行列のコレスキー分解:0.22(秒)。
2,500 x 2,500のランダム行列の行列式:0.164(秒)。
640 x 640ランダム行列の固有値:0.344(秒)。
2,500,000を超えるランダム値のFFT:0.25(秒)。
1,600 x 1,600のランダム行列の逆行列:0.318(秒)。
反応:pldelisle

poorcody

寄稿者
2013年7月23日
  • 2021年1月2日
TensorFlowはネイティブであり、パフォーマンスは素晴らしいように見えます。見る:

MacでのTensorFlowパフォーマンスの加速

MacでのTensorFlow2のパフォーマンスの加速 blog.tensorflow.org
ブログから:
メディアアイテムの表示 'data-single-image =' 1 '> NS

レマン

2008年10月14日
  • 2021年1月2日
LaskaDは言った:レマン、あなたの報告に感謝します。

参照BLAS / LAPACK線形代数ライブラリを実行するように構成されたRを使用していますか? macOSの一部として出荷されているAppleのacceleratedフレームワークからライブラリに切り替えることで、はるかに高速な行列操作が可能になります。

当時は両方を試しましたが、いくつかの孤立したテストを除いて、大きな違いはありませんでした。考慮すべきもう1つのことは、Appleが提供するBLAS / LAPACKは古く、既知の問題があるということです。 Rチームは積極的にそれらの使用を思いとどまらせます。非常に大きな行列を乗算するビジネスを行っていて、それを高速かつ頻繁に実行する必要がある場合は、このタスクをGPUにオフロードするカスタムパッケージを使用することをお勧めします(M1はそれを専用にサポートしています)。 AMXもありますが、それは非常に奇妙な獣であり、それがどれほど汎用的であるかはわかりません。
反応:istvan60 NS

いくつか

2013年4月8日
  • 2021年1月12日
ベースM1macbook airでロゼッタを使用すると、model_nameを正しく検出することを除いて、lemanとほぼ同じ結果が得られました。

> get_cpu()
sysctl:不明なoid'machdep.cpu.vendor '
$ vendor_id
文字(0)
attr(、 'status')
[十一

$ model_name
[1] 'Apple M1'

$ no_of_cores
[1] 8

警告メッセージ:
system( 'sysctl -n machdep.cpu.vendor'、intern = TRUE):
実行中のコマンド 'sysctl -nmachdep.cpu.vendor'のステータスは1でした
> get_ram()
8.59 GB
> res =ベンチマーク_std()
#プログラミングベンチマーク(5つのテスト):
3,500,000フィボナッチ数の計算(ベクトル計算):0.184(秒)。
1,000,000ペアの最大公約数(再帰):4.74(秒)。
3,500 x 3,500ヒルベルト行列の作成(行列計算):0.222(秒)。
3,000 x 3,000テプリッツ行列(ループ)の作成:1.26(秒)。
60 x 60マトリックス(混合)でのEscoufierの方法:66.5(秒)。
#マトリックス計算ベンチマーク(5つのテスト):
5,000 x 5,000マトリックスの作成、変換、変形:0.418(秒)。
2,500 x2,500正規分布ランダム行列^ 1,000:0.147(秒)。
7,000,000個のランダム値の並べ替え:0.625(秒)。
2,500 x 2,500の外積行列(b = a '* a):7.18(秒)。
線形登録5,000 x 500マトリックス(c = a b '):0.605(秒)。
#行列関数のベンチマーク(5つのテスト):
3,000 x 3,000行列のコレスキー分解:3.99(秒)。
2,500 x 2,500のランダム行列の行列式:1.99(秒)。
640 x 640ランダム行列の固有値:0.441(秒)。
2,500,000を超えるランダム値のFFT:0.129(秒)。
1,600 x 1,600のランダム行列の逆行列:1.63(秒)。

Apple BLASの場合、/ Libraryと/ System / Libraryの両方にlibBLAS.dylibが見つかりません。 NS

いくつか

2013年4月8日
  • 2021年1月18日
そして、これがネイティブRから実行されているベンチマークです。

>ライブラリ(ベンチマーク)
> get_cpu()
sysctl:不明なoid'machdep.cpu.vendor '
$ vendor_id
文字(0)
attr(、 'status')
[十一

$ model_name
[1] 'Apple M1'

$ no_of_cores
[1] 8

警告メッセージ:
system( 'sysctl -n machdep.cpu.vendor'、intern = TRUE):
実行中のコマンド 'sysctl -nmachdep.cpu.vendor'のステータスは1でした
> get_ram()
8.59 GB
> res =ベンチマーク_std()
#プログラミングベンチマーク(5つのテスト):
3,500,000フィボナッチ数の計算(ベクトル計算):0.111(秒)。
1,000,000ペアの最大公約数(再帰):0.282(秒)。
3,500 x 3,500ヒルベルト行列の作成(行列計算):0.162(秒)。
3,000 x 3,000テプリッツ行列(ループ)の作成:0.583(秒)。
60 x 60マトリックス(混合)でのEscoufierの方法:0.413(秒)。
#マトリックス計算ベンチマーク(5つのテスト):
5,000 x 5,000マトリックスの作成、変換、変形:0.248(秒)。
2,500 x2,500正規分布ランダム行列^ 1,000:0.107(秒)。
7,000,000個のランダム値の並べ替え:0.607(秒)。
2,500 x 2,500の外積行列(b = a '* a):0.135(秒)。
線形登録5,000 x 500マトリックス(c = a b '):0.045(秒)。
#行列関数のベンチマーク(5つのテスト):
3,000 x 3,000行列のコレスキー分解:0.233(秒)。
2,500 x 2,500のランダム行列の行列式:0.409(秒)。
640 x 640ランダム行列の固有値:0.618(秒)。
2,500,000を超えるランダム値のFFT:0.0953(秒)。
1,600 x 1,600のランダム行列の逆行列:0.363(秒)。
>プロット(解像度)
あなたは93台のマシンのうち1位にランクされています。
Returnキーを押して、次のプロットを取得します
あなたは93台のマシンのうち1位にランクされています。
Returnキーを押して、次のプロットを取得します
あなたは93台のマシンのうち69位にランクされています。
>>