Got Questions? Get Answers.
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
CUDA-GPU compute capability restriction

Subject: CUDA-GPU compute capability restriction

From: Petros Mpogiatzis

Date: 16 Sep, 2010 09:24:08

Message: 1 of 6

this is sad...

>> gpuDeviceCount
Warning: The device selected (device 1, "GeForce 8600M GT") does not have sufficient compute capability to be used. Compute capability 1.3 (or greater) is required, the selected device has
compute capability 1.1.
> In deviceCount at 7
  In GPUDevice.GPUDevice>GPUDevice.count at 27
  In gpuDeviceCount at 10

ans =

     1
____________________________________________________________________

 It is understandable (still sad..), since compute capability 1.3 is the lowest that supports double-precision floating-point operations.

Is there any way to overpass this restriction? Even with no acceleration benefits, just for code developing reasons (something like an emulator ?) since buying a new laptop is out of the schedule for the near future...

Subject: CUDA-GPU compute capability restriction

From: John Melonakos

Date: 16 Sep, 2010 21:34:04

Message: 2 of 6

With Jacket, you can run on any CUDA-capable card. Of course, if you have better cards, you'll be able to do better computation, but Jacket is restriction-free and will optimize your code to the card that is available.

Give it a try for free, here: http://www.accelereyes.com

-John

Subject: CUDA-GPU compute capability restriction

From: Jos Martin

Date: 17 Sep, 2010 18:02:05

Message: 3 of 6

Hi Petros,

I'm currently the lead architect for Parallel Computing Tools here at MathWorks and I'd like to explain why we chose to require Compute Capability 1.3 in the NVIDIA CUDA cards that can be used with the R2010b release of Parallel Computing Toolbox’s new GPU functionality; and particularly why we chose not to support older cards.

The first point to make is that this wasn't a decision we took lightly; we thought long and hard about the differences between 1.2 (and earlier) and 1.3 (and later) and what they meant to users in MATLAB. The key differentiators between compute capability 1.2 and 1.3 (for MATLAB users) are:

1. Double support in 1.3 (1.2 and earlier has NO support for double precision numbers, you can only undertake single precision arithmetic)
2. IEEE-compliance in 1.3 (1.2 and earlier doesn't implement IEEE-compliant maths whereas 1.3 is compliant in both single and double)

We feel that it is important that MathWorks products always give what are termed 'correct' answers, which is something that we strive extremely hard to ensure in the code we write. We were worried that only giving results in single precision and with non-IEEE compliance was too much of a risk to support. We obviously realize that there are some algorithms that will work with non-IEEE compliant single arithmetic, but trying to draw a line around such a set was something that we believe is not in our users’ interest, since some expected algorithms would be unavailable on some hardware.

Furthermore single-only cards are being phased out by NVIDIA. All new graphics cards are compute capability 1.3 or greater (the latest Fermi architecture is 2.0 and 2.1 and provides very good single and double performance).

Thus we opted for compute capability 1.3 or greater, knowing that most cards going forward would be suitable for use on our system and that we could rely on the underlying hardware to give the answers our users expect. Obviously we are sorry that our product can't be used on all machines with CUDA cards, but we believe the trade-off in user experience and confidence is worth it.

I'm afraid there is no way to remove this restriction on the product.

More information on the GPU capabilities, including video tutorials examples and how-to’s can be found at www.mathworks.com/gpu .

Best Regards

Jos
 

Subject: about CUDA-GPU restriction again

From: gianni schena

Date: 18 Sep, 2010 09:43:08

Message: 4 of 6

"Petros Mpogiatzis" <painter@geo.auth.gr> wrote in message <i6snno$20s$1@fred.mathworks.com>...
> this is sad...
>
> >> gpuDeviceCount
> Warning: The device selected (device 1, "GeForce 8600M GT") does not have sufficient compute capability to be used. Compute capability 1.3 (or greater) is required, the selected device has
> compute capability 1.1.
> > In deviceCount at 7
> In GPUDevice.GPUDevice>GPUDevice.count at 27
> In gpuDeviceCount at 10
>
> ans =
>
> 1
>

CUDA - GPU On matlab 2010b : restrictions

also the impossibility to use array-element indexing ( either natural indeces i,j or absolute position indeces) is such a limitation that makes the new GPU facilities available in the parallel processing toolbox (released with 2010b) of difficult use ... any workaround on this specific point?
thank you in adavance , gianni



____________________________________________________________________
>
> It is understandable (still sad..), since compute capability 1.3 is the lowest that supports double-precision floating-point operations.
>
> Is there any way to overpass this restriction? Even with no acceleration benefits, just for code developing reasons (something like an emulator ?) since buying a new laptop is out of the schedule for the near future...

Subject: about CUDA-GPU restriction again

From: Edric M Ellis

Date: 20 Sep, 2010 07:11:23

Message: 5 of 6

"Gianni Schena" <schena@univ.trieste.it> writes:

> CUDA - GPU On matlab 2010b : restrictions
>
> also the impossibility to use array-element indexing ( either natural indeces
> i,j or absolute position indeces) is such a limitation that makes the new GPU
> facilities available in the parallel processing toolbox (released with 2010b)
> of difficult use ... any workaround on this specific point?

Currently, the only workaround is to "gather" the data back to the host
and perform indexing there. (We are well aware that full indexing support
is very important, and hope to support it soon).

Cheers,

Edric.

Subject: CUDA-GPU compute capability restriction

From: Jens Klare

Date: 25 Mar, 2011 10:57:04

Message: 6 of 6

Hi Jos,

I understand your arguments to be IEEE complient and to support double precision. However, your argument that all new graphic cards (which I expect in brand new notebooks) are compute capability 1.3 or greater ist unfortunately not true.

At my office everything is fine, since I have a workstation with a Tesla C2050 with compute capability 2.0. But for my new business notebook it is not. Just 3 weeks ago, I bought a new business notebook from Dell (Latitude E6410) with i5 CPU, 14.1'' Display, 8GB RAM, 500GB disc, and a nvidia graphics card (NVS 3100m). I want to have this small and light notebook for code development in Matlab when I am on business trips, so that I can run the developed codes later on my workstation in my office with double precision.

After installation of Matlab, I was shocked that I read that GPU processing is not possible since the nvidia graphics card has "only" compute capability 1.2. However, it is not possible to order this business notebook with a nividi graphics card with compute capability 1.3 or greater. This is simply not available for a 14.1'' notebook. In fact, I bought a brand new notebook which I ordered with nvidia graphics card in order to write Matlab programs with usage of GPU power (just to test my code!), but I simply cannot use ist...

It would have been great to implement something like a "test mode" which could have shown a big "warning" (just single precission, not IEEE complient, etc.) for the parallel processing toolbox just to test code on gpus with compute capability 1.0-1.2. This would have helped many Matlab users, even with brand new notebooks which have "only" a GPU compute capability of less than 1.3. I am really disappointed that you missed this chance and I can't understand why it is not possible (or to difficult) to implement such a "test mode" in Matlab :(

Best regards,
Jens


"Jos Martin" <jos.martin.nospam@mathworks.com> wrote in message <i70aet$f32$1@fred.mathworks.com>...
> Hi Petros,
>
> I'm currently the lead architect for Parallel Computing Tools here at MathWorks and I'd like to explain why we chose to require Compute Capability 1.3 in the NVIDIA CUDA cards that can be used with the R2010b release of Parallel Computing Toolbox’s new GPU functionality; and particularly why we chose not to support older cards.
>
> The first point to make is that this wasn't a decision we took lightly; we thought long and hard about the differences between 1.2 (and earlier) and 1.3 (and later) and what they meant to users in MATLAB. The key differentiators between compute capability 1.2 and 1.3 (for MATLAB users) are:
>
> 1. Double support in 1.3 (1.2 and earlier has NO support for double precision numbers, you can only undertake single precision arithmetic)
> 2. IEEE-compliance in 1.3 (1.2 and earlier doesn't implement IEEE-compliant maths whereas 1.3 is compliant in both single and double)
>
> We feel that it is important that MathWorks products always give what are termed 'correct' answers, which is something that we strive extremely hard to ensure in the code we write. We were worried that only giving results in single precision and with non-IEEE compliance was too much of a risk to support. We obviously realize that there are some algorithms that will work with non-IEEE compliant single arithmetic, but trying to draw a line around such a set was something that we believe is not in our users’ interest, since some expected algorithms would be unavailable on some hardware.
>
> Furthermore single-only cards are being phased out by NVIDIA. All new graphics cards are compute capability 1.3 or greater (the latest Fermi architecture is 2.0 and 2.1 and provides very good single and double performance).
>
> Thus we opted for compute capability 1.3 or greater, knowing that most cards going forward would be suitable for use on our system and that we could rely on the underlying hardware to give the answers our users expect. Obviously we are sorry that our product can't be used on all machines with CUDA cards, but we believe the trade-off in user experience and confidence is worth it.
>
> I'm afraid there is no way to remove this restriction on the product.
>
> More information on the GPU capabilities, including video tutorials examples and how-to’s can be found at www.mathworks.com/gpu .
>
> Best Regards
>
> Jos
>

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us