OpenCLMemoryAllocate[t,len]
型 t の新しい一次元リストを割り当て,OpenCLMemoryを返す.
OpenCLMemoryAllocate[t,{d1,d2,…}]
型 t の次元{d1,d2,…}の新しいリストを割り当て,OpenCLMemoryを返す.
OpenCLMemoryAllocate
OpenCLMemoryAllocate[t,len]
型 t の新しい一次元リストを割り当て,OpenCLMemoryを返す.
OpenCLMemoryAllocate[t,{d1,d2,…}]
型 t の次元{d1,d2,…}の新しいリストを割り当て,OpenCLMemoryを返す.
詳細とオプション
- OpenCLLink アプリケーションは,Needs["OpenCLLink`"]を使ってロードしなければならない.
- 有効なOpenCLMemoryAllocateの型:
-
Integer Real Complex "Byte" "Bit16" "Integer" "Byte[2]" "Bit16[2]" "Integer32[2]" "Byte[4]" "Bit16[4]" "Integer32[4]" "Byte[8]" "Bit16[8]" "Integer32[8]" "Byte[16]" "Bit16[16]" "Integer32[16]" "UnsignedByte" "UnsignedBit16" "UnsignedInteger" "UnsignedByte[2]" "UnsignedBit16[2]" "UnsignedInteger[2]" "UnsignedByte[4]" "UnsignedBit16[4]" "UnsignedInteger[4]" "UnsignedByte[8]" "UnsignedBit16[8]" "UnsignedInteger[8]" "UnsignedByte[16]" "UnsignedBit16[16]" "UnsignedInteger[16]" "Double" "Float" "Integer64" "Double[2]" "Float[2]" "Integer64[2]" "Double[4]" "Float[4]" "Integer64[4]" "Double[8]" "Float[8]" "Integer64[8]" "Double[16]" "Float[16]" "Integer64[16]" - OpenCLMemoryは,OpenCLMemoryInformationを使って問合せを行うことができる.
- OpenCLMemoryは,OpenCLMemoryGetを使って取り込まれる.
- OpenCLMemoryは,OpenCLMemoryUnloadを使ってアンロードされる.
- OpenCLMemoryAllocateは,出力メモリ等に書き込むためにメモリが割り当てられなければならない場合に使われる.
- 使用できるオプション:
-
"Device" Automatic 計算に使用するOpenCLデバイス "Platform" Automatic 計算に使用するOpenCLプラットフォーム "TargetPrecision" Automatic 計算に使用する精度
例題
すべて開く すべて閉じる例 (2)
Needs["OpenCLLink`"]メモリを割り当て,これを OpenCLLink メモリマネージャを使って登録する:
OpenCLMemoryAllocate[Integer, 10]階数3のテンソルを OpenCLLink メモリマネージャに割り当てる:
OpenCLMemoryAllocate[Integer, {10, 10, 10}]OpenCLMemoryInformation[%]型Realを使う場合,"Float"あるいは"Double"のいずれであれ,これはOpenCL デバイスに基づく:
OpenCLMemoryAllocate[Real, 10]この場合,システムは倍精度をサポートする.これは"TargetPrecision"オプションを使って無効にすることができる:
OpenCLMemoryAllocate[Real, 10, "TargetPrecision" -> "Single"]スコープ (1)
オプション (3)
"Device" (1)
"Platform" (1)
"TargetPrecision" (1)
目標精度を使って OpenCLLink にどのようにRealの型を解釈すべきかを指示することができる.デフォルトでは,システムが倍精度をサポートするかどうかを検知することによって決められる:
MemberQ[OpenCLInformation[$OpenCLPlatform, $OpenCLDevice, "Extensions"], "cl_khr_fp64"]OpenCLMemoryAllocate[Real, 10]Realの型は"Double"として解釈される."Float"の使用を強制するには,"TargetPrecision"を"Single"に設定する:
OpenCLMemoryAllocate[Real, 10, "TargetPrecision" -> "Single"]アプリケーション (1)
src = "__kernel void zero(__global mint * A, mint length) {
int index = get_global_id(0);
if (index < length)
A[index] = 0;
}";len = 100;
mem = OpenCLMemoryAllocate[Integer, {len}]OpenCLFunctionLoadを使って関数をロードする:
zero = OpenCLFunctionLoad[src, "zero", {{_Integer}, _Integer}, 32]OpenCLFunctionを実行する:
zero[mem, len]メモリについての情報を示す."DeviceStatus"は"Synchronized"である:
OpenCLMemoryInformation[mem]OpenCLMemoryGet[mem]メモリについての情報を示す."DeviceStatus"および"HostStatus"は"Synchronized"である:
OpenCLMemoryInformation[mem]テクニカルノート
関連するガイド
関連リンク
テキスト
Wolfram Research (2010), OpenCLMemoryAllocate, Wolfram言語関数, https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryAllocate.html.
CMS
Wolfram Language. 2010. "OpenCLMemoryAllocate." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryAllocate.html.
APA
Wolfram Language. (2010). OpenCLMemoryAllocate. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryAllocate.html
BibTeX
@misc{reference.wolfram_2026_openclmemoryallocate, author="Wolfram Research", title="{OpenCLMemoryAllocate}", year="2010", howpublished="\url{https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryAllocate.html}", note=[Accessed: 16-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_openclmemoryallocate, organization={Wolfram Research}, title={OpenCLMemoryAllocate}, year={2010}, url={https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryAllocate.html}, note=[Accessed: 16-August-2026]}