OpenClにprocssorアフィニティを課すことはできますか?たとえば、スレッド#1はプロセッサ#5で実行され、
スレッド#2はプロセッサ#6で実行され、スレッド#3はプロセッサ#7で実行されます。
ありがとう
OpenClにprocssorアフィニティを課すことはできますか?たとえば、スレッド#1はプロセッサ#5で実行され、
スレッド#2はプロセッサ#6で実行され、スレッド#3はプロセッサ#7で実行されます。
ありがとう
私の知る限り、OpenCLではその低レベルでアフィニティを指定することはできません。ただし、OpenCL 1.2以降では、clCreateSubDevicesを使用してサブデバイスに分割し(場合によってはを使用して各サブデバイスに1つのプロセッサを使用)、各サブデバイスで個別のカーネル実行を実行することにより、アフィニティをある程度制御できますCL_DEVICE_PARTITION_BY_COUNTS, 1
。
これは、CPUベースのOpenCL実装以外ではうまく機能しない可能性が非常に高く、なぜそのようなことをしたいのか疑問に思う必要があります。OpenCL-CPU実装のCPU使用率を制限したい場合clCreateSubDevices
は、コンピューティングリソースの一部を分割するために使用できます。
Intelの「デバイス核分裂」を説明するPDFがここclCreateSubDevices
にあり、デバイスのパーティション分割を効果的に使用する方法に関する多くの情報が含まれています。