As of BOINC 7.0.65, the BOINC client assumed that any CAL-capable GPU was also 
OpenCL-capable, and so reported the to the server that way.  I have since 
checked in code that corrects this assumption and should report correctly to 
the server.  

Because of limited information available from CAL and OpenCL, it is not 
possible to do this perfectly in situations where one computer has a mix of 
GPUs some of which are openCL capable and some of which are not, but I think my 
new code should work _almost_ every case.

I did a bunch of internet research, and I believe Jon Sonntag's approach 
similarly should work in _almost_  every case.  Unfortunately, some AMD target 
values include GPUs that are both openCL capable and ones that are not.  Here 
is what I wrote earlier to David and Rom:

> he information on AMD's web site is hard to find and very incomplete and 
> ambiguous.  They seem to be pushing only their version 2.8 SDK which supports 
> OpenCL 1.2, and give a list of compatible GPUs, but it is unclear whether 
> this means that:
> [1]their latest software does not support older GPUs at all, or 
> [2]it supports CAL but not OpenCL on their older GPUs, or 
> [3]the newer GPUs are needed for newer OpenCL features but older GPUs are 
> still supported for the features which were present in older versions of 
> openCL.
> 
> I suspect it means [2] based on what Jord has written me.
> 
> Because of all the confusion, and because the only information CAL gives us 
> about GPU model numbers is the  CALtargetEnum value, I compiled a list the 
> best I could mapping CALtargetEnum to GPU model and OpenCL capability.  I got 
> my information from the tables in 
> <http://en.wikipedia.org/wiki/Comparison_of_ATI_graphics_processing_units>.
> 
> This correlates model numbers and other info with the engineering code names 
> listed in cal_boinc.h and the switch / case statement in COPROC_ATI::get() in 
> gpu_amd.cpp.  I also found a newer version of cal.h with a more recent 
> listing for CALtargetEnum values at 
> <http://gpuocelot.googlecode.com/svn/trunk/ocelot/ocelot/cal/include/cal.h>.  
> 
> Finally, I made the somewhat questionable assumption that if a table section 
> makes no mention of OpenCL that means those GPU models have no OpenCL support.

Here is my list, which I am sure is not perfect:

Based on 
<http://en.wikipedia.org/wiki/Comparison_of_ATI_graphics_processing_units>

HD 83xx - 84xx models include DirectX 11, OpenGL 4.2 and OpenCL 1.1[19]


case CAL_TARGET_600,                /**< R600 GPU ISA */
        "ATI Radeon HD 2900 (RV600)"
        Radeon HD 2900 GT       Nov 6, 2007             OpenCL: NO
        Radeon HD 2900 Pro      Sep 25, 2007            OpenCL: NO
        
case CAL_TARGET_610,                /**< RV610 GPU ISA */
        "ATI Radeon HD 2300/2400/3200/4200 (RV610)"
        Radeon HD 2350          Jun 28, 2007            OpenCL: NO
        Radeon HD 2400 Pro      Jun 28, 2007            OpenCL: NO
        Radeon HD 2400 XT       Jun 28, 2007            OpenCL: NO
        Mobility Radeon HD 2400 May 14, 2007            OpenCL: NO
        Mobility Radeon HD 2400 XT      May 14, 2007    OpenCL: NO
        Radeon 3000 Graphics (760G Chipset)     2009    OpenCL: NO
        Radeon 3100 Graphics (780V Chipset)     Jan 23, 2008    OpenCL: NO
        Radeon HD 3200 Graphics (780G Chipset)  Jan 23, 2008    OpenCL: NO

case CAL_TARGET_630,                /**< RV630 GPU ISA */
        "ATI Radeon HD 2600 (RV630)"
        Radeon HD 2600 Pro      Jun 28, 2007            OpenCL: NO
        Radeon HD 2600 XT       Jun 28, 2007            OpenCL: NO
        Mobility Radeon HD 2600 May 14, 2007            OpenCL: NO
        Mobility Radeon HD 2600 XT      May 14, 2007    OpenCL: NO
        Mobility Radeon HD 2700 December 12, 2007       OpenCL: NO
        Radeon HD 3650  Jan 23, 2008 (RV635)            OpenCL: NO
        All-In-Wonder HD 3650   Jun 28, 2008 (RV635)    OpenCL: NO
        Mobility Radeon HD 3650 January 7, 2008         OpenCL: NO
        Mobility Radeon HD 3670 January 7, 2008         OpenCL: NO

case CAL_TARGET_670,                /**< RV670 GPU ISA */
        "ATI Radeon HD 3800 (RV670)"
        FireStream 9170 November 8, 2007                OpenCL 1.0 *****
        Radeon HD 3850  Nov 19, 2007                    OpenCL: NO
        Radeon HD 3870  Nov 19, 2007                    OpenCL: NO
        Radeon HD 3690  2008                            OpenCL: NO
        Radeon HD 3850 X2       Apr 4, 2008             OpenCL: NO
        Mobility Radeon HD 3850 June 4, 2008            OpenCL: NO
        Mobility Radeon HD 3870 June 4, 2008            OpenCL: NO

case CAL_TARGET_7XX,                /**< R700 class GPU ISA */
        "ATI Radeon (RV700 class)"
        Radeon HD 4850 X2       Nov 7, 2008             OpenCL 1.0
        Radeon HD 4870 X2       Aug 12, 2008            OpenCL 1.0

case CAL_TARGET_770,                /**< RV770 GPU ISA */
        "ATI Radeon HD 4700/4800 (RV740/RV770)"
        Radeon HD 4730  Jun 8, 2009                     OpenCL 1.0
        FireStream 9250 June 16, 2008                   OpenCL 1.0
        Radeon HD 4850  Jun 25, 2008                    OpenCL 1.0
        Radeon HD 4870  Jun 25, 2008                    OpenCL 1.0
        Radeon HD 4830  Oct 21, 2008                    OpenCL 1.0
        FireStream 9270 November 13, 2008               OpenCL 1.0
        FirePro 3D V8700        September 11, 2008      OpenCL: NO
        Mobility Radeon HD 4850[34] January 9, 2009     OpenCL: NO
        Mobility Radeon HD 4870 January 9, 2009         OpenCL: NO
        Mobility Radeon HD 4870 X2 January 9, 2009      OpenCL: NO
        FirePro 3D V8750        July 28, 2009           OpenCL: NO
        
case CAL_TARGET_710,                /**< RV710 GPU ISA */
        "ATI Radeon HD 4350/4550 (R710)"
        Radeon HD 4350  Sep 30, 2008                    OpenCL 1.0
        Radeon HD 4550  Sep 30, 2008                    OpenCL 1.0
        Mobility Radeon HD 4330 January 9, 2009         OpenCL: NO
        Mobility Radeon HD 4530 January 9, 2009         OpenCL: NO
        Mobility Radeon HD 4550 January 1, 2010         OpenCL: NO
        Mobility Radeon HD 4570 January 9, 2009         OpenCL: NO
        Mobility Radeon HD 530v May 5, 2010             OpenCL: NO
        Mobility Radeon HD 545v May 5, 2010             OpenCL: NO
        Mobility Radeon HD 5145 January 7, 2010         OpenCL: NO
        FirePro 2450 Multi-View 2009                    OpenCL: NO

case CAL_TARGET_730,                /**< RV730 GPU ISA */
        "ATI Radeon HD 4600 series (R730)"
        Radeon HD 4650  Sep 10, 2008                    OpenCL 1.0
        Radeon HD 4670  Sep 10, 2008                    OpenCL 1.0
        Mobility Radeon HD 4650[31] January 9, 2009     OpenCL: NO
        Mobility Radeon HD 4670[31] January 9, 2009     OpenCL: NO
        Mobility Radeon HD 550v May 5, 2010             OpenCL: NO
        Mobility Radeon HD 560v May 5, 2010             OpenCL: NO
        Mobility Radeon HD 565v May 5, 2010             OpenCL: NO
        Mobility Radeon HD 5165 January 7, 2010         OpenCL: NO
        FirePro 3D V3750        September 11, 2008      OpenCL: NO
        FirePro 3D V5700        August 8, 2008          OpenCL: NO
        FirePro 3D V7750        March 27, 2009          OpenCL: NO

case 8:
        "ATI Radeon HD 5800 series (Cypress)";
        Radeon HD 5830  Feb 25, 2010                    OpenCL 1.2
        Radeon HD 5850  Sep 30, 2009                    OpenCL 1.2
        Radeon HD 5870  Sep 23, 2009                    OpenCL 1.2
        Radeon HD 5870 Eyefinity Edition Mar 11, 2010   OpenCL 1.2
        FirePro 3D V7800        April 26, 2010          OpenCL 1.0
        FirePro 3D V8800        April 7, 2010           OpenCL 1.0
        FirePro 3D V9800        September 9, 2010       OpenCL 1.0

case 9:
        "ATI Radeon HD 5700 series (Juniper)";
        Radeon HD 5750  Oct 13, 2009                    OpenCL 1.2
        Radeon HD 5770  Oct 13, 2009                    OpenCL 1.2
        Radeon HD 6750  Jan 21, 2011 (OEM)              OpenCL 1.2
        Radeon HD 6770  Apr 19, 2011                    OpenCL 1.2
        Mobility Radeon HD 5830 January 7, 2010         OpenCL: NO
        Mobility Radeon HD 5850 January 7, 2010         OpenCL: NO
        Mobility Radeon HD 5870 January 7, 2010         OpenCL: NO
        Radeon HD 6830M[40]     January 4, 2011         OpenCL: NO
        Radeon HD 6850M[40]     January 4, 2011         OpenCL: NO
        Radeon HD 6850M[40]     January 4, 2011         OpenCL: NO
        Radeon HD 6870M[40]     January 4, 2011         OpenCL: NO
        FirePro 3D V5800[46]    April 26, 2010          OpenCL 1.0
        FirePro M7820   May 1, 2010                     OpenCL: NO

case 10:
        "ATI Radeon HD 5500/5600 series (Redwood)";
        Radeon HD 5550  Feb 9, 2010                     OpenCL 1.2
        Radeon HD 5570  Feb 9, 2010                     OpenCL 1.2
        Radeon HD 5670  Jan 14, 2010                    OpenCL 1.2
        Mobility Radeon HD 5650 January 7, 2010         OpenCL: NO
        Mobility Radeon HD 5730 January 7, 2010         OpenCL: NO
        Mobility Radeon HD 5750 January 7, 2010         OpenCL: NO
        Mobility Radeon HD 5770 January 7, 2010         OpenCL: NO
        Radeon HD 6530M[38]     November 26, 2010       OpenCL: NO
        Radeon HD 6550M[38]     November 26, 2010       OpenCL: NO
        Radeon HD 6570M[38]     November 26, 2010       OpenCL: NO
        FirePro 3D V3800[46]    April 26, 2010          OpenCL: NO
        FirePro 3D V4800[47]    April 26, 2010          OpenCL: NO
        FirePro M5800   March 1, 2010                   OpenCL: NO

case 11:
        "ATI Radeon HD 5400 series (Cedar)";
        Radeon HD 5450  Feb 4, 2010                     OpenCL 1.2
        Radeon HD 6350  Feb 7, 2011 (OEM)               OpenCL 1.2
        Radeon HD 7350  Jan 2012 (OEM)                  OpenCL 1.2
        Mobility Radeon HD 5430 January 7, 2010         OpenCL: NO
        Mobility Radeon HD 5450 January 7, 2010         OpenCL: NO
        Mobility Radeon HD 5470 January 7, 2010         OpenCL: NO
        Radeon HD 6330M[36]     November 26, 2010       OpenCL: NO
        Radeon HD 6350M[36]     November 26, 2010       OpenCL: NO
        Radeon HD 6370M[36]     November 26, 2010       OpenCL: NO
        FirePro 2270 PCIe       January 31, 2011        OpenCL: NO
        FirePro 2460 Multi-View[49]     April 2010      OpenCL: NO

case 12:
        "AMD Radeon HD 5900 (Hemlock)";
        Radeon HD 5970  Nov 18, 2009                    OpenCL 1.2

case 13:
        "AMD Radeon HD 6300/6400/6500/6600 series (Sumo)"; //real names would 
be AMD Radeon HD 6370D/6380G/6410D/6480G/6520G/6530D/6550D/6620G series (Sumo)
        Radeon HD 6370D 4th quarter 2011 (WinterPark)   OpenCL 1.2
        Radeon HD 6380G June 14, 2011 (WinterPark)      OpenCL 1.2
        Radeon HD 6410D Jun 20, 2011 (WinterPark)       OpenCL 1.2
        Radeon HD 6480G June 14, 2011 (BeaverCreek)     OpenCL 1.2
        Radeon HD 6520G June 14, 2011 (BeaverCreek)     OpenCL 1.2
        Radeon HD 6530D Jun 20, 2011 (BeaverCreek)      OpenCL 1.2
        Radeon HD 6550D Jun 20, 2011 (BeaverCreek)      OpenCL 1.2
        Radeon HD 6620G June 14, 2011 (BeaverCreek)     OpenCL 1.2

case 14:
        "AMD Radeon HD 6200/6300/7300 series (Wrestler)"; // real names would 
be AMD Radeon HD 6250/6290/6310/6320/7290/7310/7340 series (Wrestler)
        Radeon HD 6250 Nov 9, 2010 (Wrestler)           OpenCL 1.2
        Radeon HD 6290 Jan 7, 2011 (Ontario)            OpenCL 1.2
        Radeon HD 6310 Nov 9, 2010 (Wrestler)           OpenCL 1.2
        Radeon HD 6320 Aug 15, 2011 (Zacate?)           OpenCL 1.2
        Radeon HD 7290 not found in table               ????
        Radeon HD 7310 not found in table               ????
        Radeon HD 7340 not found in table               ????

case 15:
        "AMD Radeon HD 6900 series (Cayman)";
        Radeon HD 6930  Dec 2011                        OpenCL 1.2
        Radeon HD 6950  Dec 15, 2010                    OpenCL 1.2
        Radeon HD 6970  Dec 15, 2010                    OpenCL 1.2
        FirePro V5900   May 24, 2011                    OpenCL 1.0
        FirePro V7900   May 24, 2011                    OpenCL 1.0

case 16:
        "AMD Radeon HD 6990 (Antilles)";
        Radeon HD 6990  Mar 8, 2011                     OpenCL 1.2

case 17:
        "AMD Radeon HD 6790/6850/6870 series (Barts)";
        Radeon HD 6790  Apr 4, 2011                     OpenCL 1.2
        Radeon HD 6850  Oct 22, 2010                    OpenCL 1.2
        Radeon HD 6870  Oct 22, 2010                    OpenCL 1.2
        Radeon HD 6950M[41]     January 4, 2011         OpenCL: NO
        Radeon HD 6970M[41]     January 4, 2011         OpenCL: NO
        Radeon HD 6990M[42]     July 12, 2011           OpenCL: NO


case 18:
        "AMD Radeon HD 6570/6670/7570/7670 series (Turks)";
        =Radeon HD 6570 Feb 7, 2011 (OEM)               OpenCL 1.2
        =Radeon HD 6570 Apr 19, 2011                    OpenCL 1.2
        =Radeon HD 6670 Apr 19, 2011                    OpenCL 1.2
        Radeon HD 7570  Jan 2012 (OEM)                  OpenCL 1.2
        Radeon HD 7670  Jan 2012 (OEM)                  OpenCL 1.2
        Radeon HD 7510M January 7, 2012                 OpenCL 1.2
        Radeon HD 7530M January 7, 2012                 OpenCL 1.2
        Radeon HD 7550M January 7, 2012                 OpenCL 1.2
        Radeon HD 7570M January 7, 2012                 OpenCL 1.2
        Radeon HD 7590M January 7, 2012                 OpenCL 1.2
        Radeon HD 7610M January 7, 2012                 OpenCL 1.2
        Radeon HD 7630M January 7, 2012                 OpenCL 1.2
        Radeon HD 7650M January 7, 2012                 OpenCL 1.2
        Radeon HD 7670M January 7, 2012                 OpenCL 1.2
        Radeon HD 7690M January 7, 2012                 OpenCL 1.2
        Radeon HD 7690M XT      January 7, 2012         OpenCL 1.2
        FirePro V3900   February 7, 2012                OpenCL 1.0
        FirePro V4900   November 1, 2011                OpenCL 1.0
        FirePro M2000   2012                            OpenCL: NO
        Radeon HD 6630M[39]     January 4, 2011         OpenCL: NO
        Radeon HD 6650M[39]     January 4, 2011         OpenCL: NO
        Radeon HD 6730M[39]     January 4, 2011         OpenCL: NO
        Radeon HD 6750M[39]     January 4, 2011         OpenCL: NO
        Radeon HD 6770M[39]     January 4, 2011         OpenCL: NO

case 19:
        "AMD Radeon HD 6350/6450/7450/7470 series (Caicos)";
        Radeon HD 6450  Feb 7, 2011 (OEM)               OpenCL 1.2
        Radeon HD 6450  Apr 7, 2011                     OpenCL 1.2
        Radeon HD 7450  Jan 2012 (OEM)                  OpenCL 1.2
        Radeon HD 7470  Jan 2012 (OEM)                  OpenCL 1.2
        Radeon HD 6430M[37]     January 4, 2011         OpenCL: NO
        Radeon HD 6450M[37]     January 4, 2011         OpenCL: NO
        Radeon HD 6470M[37]     January 4, 2011         OpenCL: NO
        Radeon HD 6490M[37]     January 4, 2011         OpenCL: NO
        Radeon HD 7430M January 7, 2012                 OpenCL 1.2
        Radeon HD 7450M January 7, 2012                 OpenCL 1.2
        Radeon HD 7470M January 7, 2012                 OpenCL 1.2
        Radeon HD 7490M January 7, 2012                 OpenCL 1.2

NOTE: HD6350 is Cedar not Caicos

case 20:
        "AMD Radeon HD 7870/7950/7970 series (Tahiti)";
        Radeon HD 7870 XT       Nov 19, 2012            OpenCL 1.2
        Radeon HD 7950  Jan 31, 2012                    OpenCL 1.2
        Radeon HD 7950 Boost    Aug 14, 2012            OpenCL 1.2
        Radeon HD 7970  Jan 9, 2012                     OpenCL 1.2
        Radeon HD 7970 GHz Edition Jun 22, 2012         OpenCL 1.2
        Radeon HD 8950 (OEM)[28]        2013            OpenCL 1.2
        Radeon HD 8970 (OEM)[29]        2013            OpenCL 1.2
        FirePro W8000   June 14, 2012                   OpenCL 1.2
        FirePro W9000   June 14, 2012                   OpenCL 1.2
        FirePro S9000   August 27, 2012                 OpenCL 1.2
        FirePro S10000  November 12, 2012               OpenCL 1.2
        Radeon™ Sky 700 April, 2013                     OpenCL 1.2
        Radeon™ Sky 900 April, 2013                     OpenCL 1.2
        
case 21:
        "AMD Radeon HD 7850/7870 series (Pitcairn)";
        Radeon HD 7850  Mar 19, 2012                    OpenCL 1.2
        Radeon HD 7870 GHz Edition      Mar 19, 2012    OpenCL 1.2
        Radeon HD 8870 (OEM)[27]        2013            OpenCL 1.2
        Radeon HD 7970M April 24, 2012                  OpenCL 1.2
        FirePro W5000   June 13, 2012                   OpenCL 1.2
        FirePro W7000   June 13, 2012                   OpenCL 1.2
        FirePro S7000   August 27, 2012                 OpenCL 1.2
        FirePro R5000   February 25, 2013               OpenCL 1.2
        Radeon™ Sky 500 April, 2013                     OpenCL 1.2

case 22:
        "AMD Radeon HD 7700 series (Cape Verde)";
        Radeon HD 7750  Feb 15, 2012                    OpenCL 1.2
        Radeon HD 7770 GHz Edition Feb 15, 2012         OpenCL 1.2
        Radeon HD 8760 (OEM)[26] 2013 (OEM)             OpenCL 1.2
        Radeon HD 7730M April 24, 2012                  OpenCL 1.2
        Radeon HD 7750M April 24, 2012                  OpenCL 1.2
        Radeon HD 7770M April 24, 2012                  OpenCL 1.2
        Radeon HD 7850M                                 OpenCL 1.2
        Radeon HD 7870M                                 OpenCL 1.2
        Radeon HD 8830M January 8, 2013                 OpenCL 1.2
        Radeon HD 8850M January 8, 2013                 OpenCL 1.2
        Radeon HD 8870M January 8, 2013                 OpenCL 1.2
        FirePro W600    June 13, 2012                   OpenCL 1.2
        FirePro M4000   2012                            OpenCL: NO
        FirePro M6000   2012                            OpenCL: NO

case 23:
        "AMD Radeon HD 7400/7500/7600 series (Trinity)"; // it is not NEW 
ZEALAND - those are the GPUs inside AMD Trinity & Richland APUs !
NOTE: Not found in table

Cheers,
--Charlie

On Apr 16, 2013, at 10:31 AM, Eric J Korpela wrote:

> Unless things have changed since January (the last time I looked) there is
> no existing plan class that will send CAL apps to CAL capable cards only if
> they don't also have OpenCL.  Maybe they're not supposed to, but they do.
> If the scheduler believes (erroneously or not) that the CAL application is
> faster, it will send it.  That, and the lack of easy customizability is why
> I've stopped using the standard plan classes in favor of
> plan_class_spec.xml .
> 
> I was planning on adding that capability to the plan_class_spec style plan
> classes, but have not yet done so.  I've also been planning on trying to
> fully understand the app selection logic and why it sometimes uses
> processing rate (good) and other times uses elapsed time (bad) to choose
> one app over another.  The app selection is sufficiently bad that I need to
> put a lot of time into trying to get the right apps to the right GPUs with
> the right drivers rather than letting processing rate be the decider.
> 
> 
> 
> On Tue, Apr 16, 2013 at 10:14 AM, David Anderson 
> <[email protected]>wrote:
> 
>> 
>> 
>> On 16-Apr-2013 2:12 AM, Raistmer the Sorcerer wrote:
>> 
>> How to properly configure project server to send Brook+ app ONLY to GPUs
>>> with
>>> CAL support but w/o OpenCL support and OpenCL app to all OpenCL GPUs ? Is
>>> this possible in current BOINC implementation ?
>>> 
>> 
>> Yes; see
>> http://boinc.berkeley.edu/**trac/wiki/AppPlan<http://boinc.berkeley.edu/trac/wiki/AppPlan>
>> 
>> -- David
>> 
>> ______________________________**_________________
>> boinc_dev mailing list
>> [email protected]
>> http://lists.ssl.berkeley.edu/**mailman/listinfo/boinc_dev<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.
> 

_______________________________________________
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.

Reply via email to