Accelerateフレームワークを使用して/ mul/sub 2つの__m128
(float)変数を追加する必要があります。しかし、私はそれを行う機能を見つけることができません。すべてのAccelerateフレームワーク関数は、float__vector__
タイプの代わりにタイプを使用します。私は'vdivf'
を分割する機能を見つけましたが、/ mul/subも追加する必要があります。
Accelerateフレームワークを使用して/ mul/sub 2つの__m128
(float)変数を追加する方法を教えてもらえますか?このようなもの:_mm_add_ps
、_mm_sub_ps
、_mm_mul_ps
を使用しますが、AccelerateフレームワークAPIを使用します。Accelerateフレームワークを使用して2つの__m128タイプを追加する
答えて
あなたは基本的な算術演算のためのAPIを必要としません:
__m128 x, y;
__m128 z = x + y;
__m128 w = x - y;
__m128 t = x * y;
APIは、これらの操作には全く不要であるので、いずれかを持っていません加速するでしょう。
SSE組み込み関数(_mm_add_ps
など)を使用する既存のコードを使用していて、実際に「最小コード変更」を試みているとしたら、何も変更していないのですか? SSEの組み込み関数は、OS Xでもうまく動作します。
"基本的な算術演算にAPIは必要ありません"とはどういう意味ですか?この操作は自動的にSSE命令を使用するでしょうか? – Lexandr
@ Lexandr:はい、そうです。しかし、私が指摘したように、すでに組み込み関数を使用している作業コードを持っていれば、*変更しないでください。 –
問題は、AccelerateがSSE2組み込み関数を使用するよりも上位レベルのAPIであることです。 SSE組み込み関数は、一度に1つのベクトルで動作する命令の命令にマップされます。 Accelerateは、通常は妥当なサイズの配列を使用して、はるかに大きな粒度で動作する関数のより高いレベルのAPIを提供します。既存のコードを移植するには、SSE組み込み関数を使用するだけです.PowerPCサポートが本当に必要な場合は、SSEコードを#idefし、ppcビルド用の同等のAltiVec実装を記述する必要があります。私はこれが努力の価値があるとは思っていませんが、Appleは7年ほど前にPowerPC Macを販売しなくなったので、PowerPCアプリケーションの市場は今のところ非常に小さくなければなりません。
- 1. Mac用OpenCVはAccelerateフレームワークを使用しますか?
- 2. Accelerateフレームワークを使用したベクトルによる符号化
- 3. リンクリストを使用して2つの数字を追加する
- 4. ウィンドウチャートフォームを使用して2つのチャートを下に追加
- 5. SSE:__m128と__m128iを2つの__m128dに変換します。
- 6. C++ 2つの追加のスタックを使用してスタックを反転する
- 7. withColumnを使用して既存のDataFrameに2つのカラムを追加する
- 8. Swift Accelerateを使用したセグメンテーションエラーvDSP_ctoz
- 9. 1つのタイプのファイルを1つのzipファイルに追加し、PowerShellを使用してクリーンアップする
- 10. StructureMapを使用して2つのアセンブリにレジストリを追加する
- 11. WPFを使用して2つのテキストボックス値をSQLデータベーステーブルに追加するC#
- 12. アンドロイドでスピナーを使用して2つの数字を追加する
- 13. Nibファイルを使用してUIViewControllerで2つのUIImageViewを追加するには?
- 14. htmlとjavascriptを使用して2つの数字を追加する
- 15. 2つのメソッドを使用して行と列を追加する
- 16. SDK-Addonを使用してフレームワークに新しいクラスを追加する:NoClassDefFoundError
- 17. セレクタ構文を使用してjQueryを使用して2つの要素を同時に追加する
- 18. jQueryを使用して2つのタグを同じ行に追加します
- 19. D2RQを使用してタイプ3倍にrdf文書を追加
- 20. Spring MVC Hibernateを使用してModelAttributeを2つ追加する<form:hidden>
- 21. 2つのスレッドを使用して2つの数値を加算する
- 22. 連絡先フレームワークを使用してグループに連絡先を追加する
- 23. TypeScriptを使用して既存のタイプにプロパティを追加する
- 24. BleshSDKフレームワークを追加する
- 25. R内のdata.tableのインデックスを使用して2つの列を追加
- 26. Visionフレームワークを使用してローカルビデオの顔を追跡する
- 27. 1つのファイルのデータを使用して2つの追加リストを新しいファイルに作成する
- 28. Apache SparkでSetタイプの2つのRDDを追加/連結します
- 29. ncoを使用して2つのnetcdfファイルを追加できない
- 30. AppleScriptを使ってXCodeにファイル、フレームワーク、ライブラリを追加する4
あなたはなぜこのためにAccelerate Frameworkを使用する必要があると思いますか?組み込み関数を直接使用するのはなぜですか? –
私は、AppleがMMX、SSEなどを使用するためのAPIを提供する場合、このAPIを使用する方が良いと思います。私はPPCとIntelのプロセッサファミリをサポートする必要があります、AccelerateフレームワークはCPUコマンドのサポートを自動的に処理されます。また、将来的に何かが変更される場合は、Accelerateフレームワークを使用して変更を少なくする必要があります。 – Lexandr
OKですが、単一ベクトルに対してのみAccelerate関数を呼び出すことは望ましくありません。これは、無駄に非効率で無意味になります。そうでなければ、関数呼び出しのオーバーヘッドによってSIMDの使用がなくなります。 –