OpenCLMemoryLoad[list]
list をOpenCLMemoryマネージャにロードし,OpenCLMemoryを返す.
OpenCLMemoryLoad[list,type]
特定の type を持つ list をOpenCLMemoryマネージャにロードし,OpenCLMemoryを返す.
OpenCLMemoryLoad
OpenCLMemoryLoad[list]
list をOpenCLMemoryマネージャにロードし,OpenCLMemoryを返す.
OpenCLMemoryLoad[list,type]
特定の type を持つ list をOpenCLMemoryマネージャにロードし,OpenCLMemoryを返す.
詳細とオプション
- OpenCLLink アプリケーションは,Needs["OpenCLLink`"]を使ってロードしなければならない.
- 有効なOpenCLMemoryLoadの型:
-
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 計算で使用する精度
例題
すべて開く すべて閉じる例 (5)
Needs["OpenCLLink`"]リストConstantArray[0,10]を OpenCLLink メモリマネージャに登録する:
OpenCLMemoryLoad[ConstantArray[0, 10]]ベクトルの型はロードすることができるが,型の幅の必要条件(例えば,"Byte16"の幅は16である)に従わなければならない:
OpenCLMemoryLoad[RandomInteger[{0, 255}, {10, 16}], "Byte[16]"]OpenCLMemoryGet[%]OpenCLMemoryLoad[RandomInteger[{0, 255}, {10, 1}], "Byte[16]"]画像をOpenCLMemoryとしてロードすることができる:
OpenCLMemoryLoad[[image]]デフォルトで,画像は整数のリストとして表されるが,別の型を使うこともできる:
OpenCLMemoryLoad[[image], "Byte"]グラフィックスオブジェクトを追加する際には,オブジェクトはラスタライズされる:
mem = OpenCLMemoryLoad[\!\(\*Graphics3DBox[«5»]\)]OpenCLMemoryGet[mem]//Head型Realを使う場合,"Float"と"Double"のどちらであるかは,OpenCLデバイスによる:
OpenCLMemoryLoad[RandomReal[1, 10]]この場合は,システムが倍精度をサポートする.これは"TargetPrecision"オプションを使って無効にすることができる:
OpenCLMemoryLoad[RandomReal[1, 10], "TargetPrecision" -> "Single"]オプション (3)
"Device" (1)
"Platform" (1)
"TargetPrecision" (1)
目標精度を使って OpenCLLink にRealの型をどのように解釈するかを伝えることができる.デフォルトでこれは,システムが倍精度をサポートするかどうかを検知することによって決定される:
MemberQ[OpenCLInformation[$OpenCLPlatform, $OpenCLDevice, "Extensions"], "cl_khr_fp64"]OpenCLMemoryLoad[RandomReal[1, 10]]Realの型は"Double"として解釈される."Float"の使用を強制するためには, "TargetPrecision"を"Single"に設定する:
OpenCLMemoryLoad[RandomReal[1, 10], "TargetPrecision" -> "Single"]アプリケーション (2)
srcf = FileNameJoin[{$OpenCLLinkPath, "SupportFiles", "addTwo.cl"}]OpenCLFunctionLoadを使って関数をロードする:
addTwo = OpenCLFunctionLoad[{srcf}, "addTwo", {{_Integer}, _Integer}, 32]OpenCLFunctionを実行する:
res = addTwo[OpenCLMemoryLoad[Range[100]], 100]OpenCLMemoryGetを使ってメモリを得る:
OpenCLMemoryGet[First@res]OpenCLMemoryUnloadを使ってメモリをアンロードする:
OpenCLMemoryUnload[First@res]OpenCLMemoryLoadは,見えないところでメモリをロードするのに内部的に使われる.入力画像の色を無効にする:
src = "__kernel void imageColorNegate(__global mint * img, mint width, mint height, mint channels) {
int ii;
int xIndex = get_global_id(0);
int yIndex = get_global_id(1);
int index = channels*(xIndex + yIndex*width);
if (xIndex < width && yIndex < height) {
for (ii = 0; ii < channels; ii++)
img[index+ii] = 255 - img[index+ii];
}
}";OpenCLFunctionLoadを使って関数をロードする:
colorNegate = OpenCLFunctionLoad[src, "imageColorNegate", {{_Integer}, _Integer, _Integer, _Integer}, {16, 16}]{height, width} = ImageDimensions[[image]];
channels = ImageChannels[[image]];OpenCLFunctionを実行する:
colorNegate[[image], width, height, channels]テクニカルノート
関連するガイド
関連リンク
テキスト
Wolfram Research (2010), OpenCLMemoryLoad, Wolfram言語関数, https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html.
CMS
Wolfram Language. 2010. "OpenCLMemoryLoad." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html.
APA
Wolfram Language. (2010). OpenCLMemoryLoad. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html
BibTeX
@misc{reference.wolfram_2026_openclmemoryload, author="Wolfram Research", title="{OpenCLMemoryLoad}", year="2010", howpublished="\url{https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html}", note=[Accessed: 18-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_openclmemoryload, organization={Wolfram Research}, title={OpenCLMemoryLoad}, year={2010}, url={https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html}, note=[Accessed: 18-August-2026]}