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.
