In branches\sah_v7_opt\src\GPU_lock.cpp, line 685ff, I see
#if USE_OPENCL
//R: use BOINC ability to provide OpenCL device for execution. If BOINC fails
to do that - use embedded enumeration scheme
if(err=boinc_get_opencl_ids(argc,argv,
#if USE_OPENCL_NV
PROC_TYPE_NVIDIA_GPU
#elif USE_OPENCL_INTEL
PROC_TYPE_INTEL_GPU
#else
PROC_TYPE_AMD_GPU
#endif
,&boinc_device_id, &boinc_platform_id)){
no_boinc_device_id=true;
//OCL_LOG_ERR("boinc_get_opencl_ids");
if(err==ERR_NOT_FOUND)fprintf(stderr,"WARNING: BOINC was unable to find GPU
device, using own enumeration\n");
else if(err==ERR_FOPEN)fprintf(stderr,"WARNING: init_data.xml missing\n");
else fprintf(stderr,"WARNING: boinc_get_opencl_ids failed with code %d\n",err);
}
That enumerates to five parameters, by my reckoning.
>________________________________
> From: Charlie Fenton <[email protected]>
>To: Richard Haselgrove <[email protected]>
>Cc: boinc_dev email List <[email protected]>
>Sent: Thursday, September 18, 2014 11:32 AM
>Subject: Re: [boinc_dev] boinc_get_opencl_ids() returns -33 while own app
>enumeration found device
>
>
>Hi Richard,
>
>Thank you. Just to clarify, as I just posted to TBar on the SETI Beta forum:
>> I need the init_data.xml file information from the slot directory of a task
>> which has the Invalid OpenCL GPU index problem, captured before that task
>> finishes; those from other slots won't help.
>
>I assume you already understood that, but it never hurts to make sure.
>
>> <warning>NVIDIA library reports 2 GPUs</warning>
>This is really a message for debugging; it's not really a "warning" despite
>what it says!
>
>It would be helpful to confirm that this app uses the API of
>boinc_get_opencl_ids() which takes 5 arguments, as described in
><http://boinc.berkeley.edu/trac/wiki/OpenclApps>. Is the source code for this
>build of SETI@home beta available somewhere I can examine it?
>
>Cheers,
>--Charlie
>
>--
>Charlie Fenton [email protected]
>BOINC / SETI@home Macintosh & Windows Programmer
>Space Sciences Laboratory
>UC Berkeley
>
>
>
>On Sep 18, 2014, at 2:29 AM, Richard Haselgrove <[email protected]>
>wrote:
>
>> I can start you off with some of that now.
>>
>> OpenCL detection:
>>
>> 16-Sep-2014 19:35:29 [---] Starting BOINC client version 7.4.21 for
>> windows_x86_64
>> 16-Sep-2014 19:35:29 [---] log flags: file_xfer, sched_ops, task, cpu_sched,
>> sched_op_debug, work_fetch_debug
>> 16-Sep-2014 19:35:29 [---] Libraries: libcurl/7.33.0 OpenSSL/1.0.1h
>> zlib/1.2.8
>> 16-Sep-2014 19:35:29 [---] Data directory: D:\BOINCdata
>> 16-Sep-2014 19:35:29 [---] Running under account xxxx
>> 16-Sep-2014 19:35:29 [---] CUDA: NVIDIA GPU 0: GeForce GTX 670 (driver
>> version 337.88, CUDA version 6.0, compute capability 3.0, 2048MB, 1950MB
>> available, 2915 GFLOPS peak)
>> 16-Sep-2014 19:35:29 [---] CUDA: NVIDIA GPU 1: GeForce GTX 670 (driver
>> version 337.88, CUDA version 6.0, compute capability 3.0, 2048MB, 1958MB
>> available, 2915 GFLOPS peak)
>> 16-Sep-2014 19:35:29 [---] OpenCL: NVIDIA GPU 0: GeForce GTX 670 (driver
>> version 337.88, device version OpenCL 1.1 CUDA, 2048MB, 1950MB available,
>> 2915 GFLOPS peak)
>> 16-Sep-2014 19:35:29 [---] OpenCL: NVIDIA GPU 1: GeForce GTX 670 (driver
>> version 337.88, device version OpenCL 1.1 CUDA, 2048MB, 1958MB available,
>> 2915 GFLOPS peak)
>> 16-Sep-2014 19:35:29 [---] OpenCL: Intel GPU 0: Intel(R) HD Graphics 4000
>> (driver version 10.18.10.3621, device version OpenCL 1.2, 990MB, 990MB
>> available, 154 GFLOPS peak)
>> 16-Sep-2014 19:35:29 [---] OpenCL CPU: Intel(R) Core(TM) i7-3770K CPU @
>> 3.50GHz (OpenCL driver vendor: Intel(R) Corporation, driver version
>> 3.0.1.10878, device version OpenCL 1.2 (Build 76413))
>>
>> I'd forgotten I loaded a CPU driver too!
>>
>> init_data.xml will have to follow when the GPUGrid task has finished.
>>
>> There is no app_info.xml file in this case - I'm not running anonymous
>> platform while Beta testing. So we can exclude that theory. Likewise, no
>> app_config.xml file for the project either.
>>
>> There's no <coproc> specification. The only non-standard GPU entry in
>> cc_config.xml is
>>
>> <exclude_gpu>
>> <url>http://www.gpugrid.net/</url>
>> <device_num>0</device_num>
>> <type>NVIDIA</type>
>> </exclude_gpu>
>>
>> - restricting GPUGrid to device 1
>>
>> I attach coproc_info.xml, datestamped for the same startup as the log
>> messages above. I see
>>
>> <warning>NVIDIA library reports 2 GPUs</warning>
>>
>> - which is absolutely true, I paid for both and installed them myself!
>>
>> You'll have to ask Raistmer about the code which generates the 'wrong
>> platform' warning - that's not my department. I think it's unlikely to be
>> ATI-related, but might be Intel-related. I'll have a better idea when I can
>> explore more fully this afternoon.
>>
>> More to follow.
>>
>> From: Charlie Fenton <[email protected]>
>> To: Richard Haselgrove <[email protected]>
>> Cc: Raistmer the Sorcerer <[email protected]>; boinc_dev email List
>> <[email protected]>
>> Sent: Thursday, September 18, 2014 9:39 AM
>> Subject: Re: [boinc_dev] boinc_get_opencl_ids() returns -33 while own app
>> enumeration found device
>>
>> Hi Richard,
>>
>> Please send me the following when you see this problem again:
>>
>> * What does the BOINC client report about its detection of GPUs near the
>> beginning of BOINC's Event Log (in stdoutdae.txt a few lines after "Starting
>> BOINC client version 7.2.42 ....")?
>>
>> * The init_data.xml file from the slot directory with the problem. This is
>> the most important thing.
>>
>> * The app_info.xml file.
>>
>> * The <coproc> specification in cc_config.xml, if there is one.
>>
>> Do you know how the following message is generated?
>> > WARNING: BOINC supplied wrong platform!
>> Could this indicate that it is trying to run ATI GPU 1 instead of NVIDIA GPU
>> 1?
>>
>> Cheers,
>> --Charlie
>>
>> On Sep 18, 2014, at 1:05 AM, Richard Haselgrove
>> <[email protected]> wrote:
>>
>> > I'be just noticed that one of my machines is generating the same error
>> > messages, currently running BOINC v7.4.21
>> >
>> > http://setiweb.ssl.berkeley.edu/beta/show_host_detail.php?hostid=61440
>> >
>> > Machine has two identical NVidia GPUs - so uses both cards without need of
>> > an entry in cc_config.xml
>> > It also has an Intel HD 4000 iGPU, also configured for BOINC to use.
>> >
>> > I see the errors and warnings when a task is assigned to run on NV Device
>> > 1:
>> > Running on device number: 1
>> > Priority of worker thread raised successfully
>> > Priority of process adjusted successfully, below normal priority class used
>> > Invalid OpenCL GPU index: 1
>> > WARNING: boinc_get_opencl_ids failed with code -33
>> > OpenCL platform detected: Intel(R) Corporation
>> > OpenCL platform detected: NVIDIA Corporation
>> > WARNING: BOINC supplied wrong platform!
>> > BOINC assigns device 1
>> > WARNING: BOINC failed to provide OpenCL device, using own enumeration
>> > abilities
>> >
>> > but not when the same application is assigned to run on NV Device 0:
>> > Running on device number: 0
>> > Priority of worker thread raised successfully
>> > Priority of process adjusted successfully, below normal priority class used
>> > OpenCL platform detected: Intel(R) Corporation
>> > OpenCL platform detected: NVIDIA Corporation
>> > BOINC assigns device 0
>> > Info: BOINC provided OpenCL device ID used
>> >
>> > I normally run applications from two different projects on the two NV
>> > cards, which I why I haven't seen this before - and in fact I've just
>> > started a new task on Device 1, so it will be busy for the next 8 hours or
>> > so. But once it's finished, I will force SETI Beta to run on both cards,
>> > and forward the contrasting files for inspection.
>> >
>> > From: Raistmer the Sorcerer <[email protected]>
>> > To: Charlie Fenton <[email protected]>
>> > Cc: boinc_dev email List <[email protected]>
>> > Sent: Monday, September 15, 2014 6:17 PM
>> > Subject: Re: [boinc_dev] boinc_get_opencl_ids() returns -33 while own app
>> > enumeration found device
>> >
>> > Hi Charlie
>> >
>> > Please look this message:
>> > http://setiweb.ssl.berkeley.edu/beta/forum_thread.php?id=2182&postid=52412
>> >
>> > From it one can infer that BOINC detected both GPUs and both GPUs (ATi
>> > ones I mean) is active, use all GPUs switch enabled.
>> >
>> > Regarding platform warning - it means that app own enumeration scheme
>> > detected different platform than proposed by BOINC.
>> > Surely it will be cause BOINC API call resulted in error.
>> >
>> > Does -33 error code corresponds OpenCL specification? If so, it probably
>> > means BOINC API made OpenCL 1.1 call perhaps while device is OpenCL 1.0.
>> > Please check this possibility.
>> >
>> > Regarding using NV instead of ATi - hardly possible. App runs on ATi GPU
>> > after all (and exactly on HD4xxx GPU, device 1 by means of own enumeration
>> > scheme).
>> >
>> > wbr
>> >
>> >
>> >
>> >
>> > Mon, 15 Sep 2014 05:18:08 -0700 от Charlie Fenton
>> > <[email protected]>:
>> > >Hi Raistmer,
>> > >
>> > >boinc_get_opencl_ids() reported the reason for the failure in this line:
>> > >> Invalid OpenCL GPU index: 1
>> > >This error will occur if the value of <gpu_opencl_dev_index> provided by
>> > >the init_data.xml file
>> > >
>> > >It would be very helpful to see the init_data.xml file to understand what
>> > >went wrong.
>> > >
>> > >Does user TBar have the following option set in his cc_config.xml file?
>> > >> <use_all_gpus>1</use_all_gpus>
>> > >
>> > >If not, then BOINC will normally use only the most powerful ATI GPU (the
>> > >6770 Juniper), so the 4670 (RV730) will be ignored, so the highest valid
>> > >OpenCL GPU index will be 0. However, I'm not sure whether this still
>> > >applies in the case of anonymous platform. Also, boinc_get_opencl_ids()
>> > >determines the number of OpenCL devices for each platform independently.
>> > >
>> > >What does the BOINC client report about its detection of GPUs near the
>> > >beginning of BOINC's Event Log (in stdoutdae.txt a few lines after
>> > >"Starting BOINC client version 7.2.42 ....")? Does it say that the 4670
>> > >is "not used"?
>> > >
>> > >The host system has one NVIDIA GPU and 2 ATI GPUs. What does this
>> > >message mean:
>> > >> WARNING: BOINC supplied wrong platform!
>> > >
>> > >Is there any possibility that the anonymous platform specification was
>> > >trying to run the application on a second NVIDIA GPU rather than the
>> > >second ATI GPU?
>> > >
>> > >Cheers,
>> > >--Charlie
>> > >
>> > >On Sep 14, 2014, at 12:38 AM, Raistmer the Sorcerer < [email protected] >
>> > >wrote:
>> > >
>> > >> Please look this post for background:
>> > >>
>> > >>
>> > >>http://setiweb.ssl.berkeley.edu/beta/forum_thread.php?id=2182&postid=52387
>> > >>
>> > >> On ATI 4670 card under WinXP boinc_get_opencl_ids() returns -33.
>> > >> If this error code corresponds OpenCL standart it would mean
>> > >> #define CL_INVALID_DEVICE -33
>> > >>
>> > >> Nevetheless app's own device enumeration abilities allow to find this
>> > >> GPU and use it. This results in warning given in stderr. Some another
>> > >> app could not work at all on such GPU relying only on BOINC enumeration
>> > >> scheme.
>> > >> Why BOINC's code fails to detect GPU correctly?
>> > >>
>> > >> - Raistmer the Sorcerer
>> > >> _______________________________________________
>> > >> boinc_dev mailing list
>> > >> [email protected]
>> > >> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>> > >> To unsubscribe, visit the above URL and
>> > >> (near bottom of page) enter your email address.
>> > >>
>> > >
>> >
>> > _______________________________________________
>> > boinc_dev mailing list
>> > [email protected]
>> > http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>> > To unsubscribe, visit the above URL and
>> > (near bottom of page) enter your email address.
>> >
>>
>>
>> <coproc_info.zip>
>
>_______________________________________________
>boinc_dev mailing list
>[email protected]
>http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>To unsubscribe, visit the above URL and
>(near bottom of page) enter your email address.
>
>
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.