هل لدى أي مضيف OpenCL أكثر من منصة واحدة؟

StackOverflow https://stackoverflow.com/questions/3444664

  •  27-09-2019
  •  | 
  •  

سؤال

تعريف النظام الأساسي في OpenCl 1.0 و 1.1 Khronos تخصيص:

المنصة: المضيف بالإضافة إلى مجموعة من الأجهزة التي تديرها إطار OpenCL والتي تسمح للتطبيق بمشاركة الموارد وتنفيذ النواة على الأجهزة في النظام الأساسي.

وظيفة opencl ClgetPlatformids يخلق مجموعة من المنصات ، مما يعني أن المنصات المتعددة ممكنة. هل من الآمن افتراض أن مضيف opencl معين لديه منصة واحدة فقط؟

بمعنى آخر ، هل سأفقد أي شيء على أي مضيف عن طريق القيام بذلك:

cl_platform_id platform_id;
cl_uint num_platforms;
errcode = clGetPlatformIDs(1, &platform_id, &num_platforms);
هل كانت مفيدة؟

المحلول

لن أعتمد على وجود منصة واحدة فقط. عندما يكون لديك العديد من تطبيقات OpenCL على نظام واحد (والذي يجب أن يكون ممكنًا مع OpenCl ICD ، على الرغم من أنني لست متأكدًا مما إذا كان ذلك مخططًا له أو انتهائه بالفعل) ، يجب أن تحصل على منصات متعددة ، واحدة لكل تطبيق OpenCL. أحد الأمثلة التي يمكن أن يكون هناك العديد من تطبيقات OpenCL هو تطبيق NVIDIA لتشغيل OPENCL على GPU وتطبيق AMD لتشغيله على وحدة المعالجة المركزية ، بحيث لا يتم إحضارها أيضًا.

تحرير: انظر إلى http://developer.amd.com/support/knowledgebase/lists/knowledgebase/dispform.aspx؟id=71 ل (أفضل) نزول هذا

نصائح أخرى

لاستكمال إجابة Tim Child بمثال (ThinkPad X201 مع تثبيت كل من AMD و Intel SDK):

$ python /usr/share/doc/python-pyopencl/examples/benchmark-all.py
Execution time of test without OpenCL:  10.9563219547 s
===============================================================
Platform name: AMD Accelerated Parallel Processing
Platform profile: FULL_PROFILE
Platform vendor: Advanced Micro Devices, Inc.
Platform version: OpenCL 1.1 AMD-APP-SDK-v2.5 (684.213)
---------------------------------------------------------------
Device name: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz
Device type: CPU
Device memory:  7799 MB
Device max clock speed: 2399 MHz
Device compute units: 2
Execution time of test: 0.00842799 s
Results OK
===============================================================
Platform name: Intel(R) OpenCL
Platform profile: FULL_PROFILE
Platform vendor: Intel(R) Corporation
Platform version: OpenCL 1.1 LINUX
---------------------------------------------------------------
Device name: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz
Device type: CPU
Device memory:  7799 MB
Device max clock speed: 2400 MHz
Device compute units: 2
Execution time of test: 0.00260659 s
Results OK

نعم ، هناك معرف منصة واحد لكل تثبيت OpenCl البائعين. لذلك إذا قمت بتثبيت AMD's و Intel's OpenCl SDK ، فستحصل على معرف منصة واحد لكل منهما.

حتى لو افترضت أن المضيف لديه منصة واحدة فقط ، فسيتعين عليك معرفة ما هو معرف هذا النظام الأساسي ، قبل الاتصال ClgetPlatforminfo. لذلك من الأفضل أن تتصل بـ ClgetPlatformids ، واختر نظامًا افتراضيًا أو مستخدمًا مزودًا ثم اتصل بـ ClgetPlatforminFo.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top