I know I can get the compute capabilty by just visiting this official cuda page, or this wiki page.
But I dont know how I am supposed to find the sm of my card.
Is this short for shader model? or shared memory? or none of them?
- 725
- 2
- 10
- 26
-
1Where on either of those two web pages does it talk about 'sm'? Context is everything – carpii Jun 20 '16 at 18:26
-
I'm trying to compile caffe, and for the cuda part it needs two pieces of information, one is compute and the other is sm, like this ` ` `
compute_52,sm_52;compute_35,sm_35;compute_30,sm_30 ` – Hossein Jun 20 '16 at 18:29 -
1it also says sm here : https://devblogs.nvidia.com/parallelforall/maxwell-most-advanced-cuda-gpu-ever-made/ I dont know if they are the same thing, or change independently ? – Hossein Jun 20 '16 at 18:31
-
3maybe this will help http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#application-compatibility From what I understand compute_* dictates the 'Compute Capability' you are targetting, and SM decides the minimum SM Architecture (hardware). SM in this case refers to neither 'shader model' or 'shared memory', but to Streaming Multiprocessor. I'm not sure why anyone would set compute_* different to sm_*. – carpii Jun 20 '16 at 19:53
-
1See this also, it shows what APIs are available on each 'Supported SM Architecture' version - http://docs.nvidia.com/cuda/cuda-samples/index.html#simple-quicksort--cuda-dynamic-parallelism- – carpii Jun 20 '16 at 19:54
3 Answers
You should just use your compute capability from the page you linked to. For example, if your compute capability is 6.1 us sm_61 and compute_61.
SM stands for "streaming multiprocessor". The arguments are set in this confusing looking way because they are used as arguments for nvcc where the compute_XX sets the architecture for a virtual (intermediate) code representation and sm_XX sets the architecture for the real representation. Unless you have a good reason, you should set both of these to the same thing.
- 3
- 2
- 226
- 2
- 4
-
-
Lukas, do you have an explicit link to where the `sm_` in the cli arguments are mentioned to correspond to "Streaming Multiprocessor" and not for instance "Shader Model"? – Meteorhead Aug 22 '23 at 13:48
In order to get more information about your graphics card you could use the Geeks3D GPU Caps Viewer (Alternative). It's similar to GPU-Z but does provide some additional information that might prove useful. Like whenever a card is CUDA/OpenCL/Vulkan compatible.
In addition it has some more in-depth information for each of those things. For CUDA the Compute Capability and Shader Clock might be interesting for you?
- 9,000
- 1
- 19
- 34
- 1,356
- 2
- 15
- 32
-
4Can you expand your answer a bit? Just mentioning a product doesn't really explain how to accomplish the solution. It's better to include some instructions on how to use the product to solve the problem, or at least describe what makes the product a good solution. Good guidance on recommending software here: http://meta.superuser.com/questions/5329/how-do-i-recommend-software-in-my-answers. Thanks. [From LQP review queue](http://superuser.com/review/low-quality-posts/554724) – fixer1234 Jul 12 '16 at 01:50
-
@fixer1234 this is the perfect answer, I'm not playing your governing game. Please don't disturb me. Edit or delete anything you want. – Uğur Gümüşhan Jul 12 '16 at 03:50
-
7
-
1Please read [How do I recommend software](https://meta.superuser.com/questions/5329/how-do-i-recommend-software-in-my-answers/5330#5330) for some tips as to how you should go about recommending software. You should provide at least a link, some additional information about the software itself, and how it can be used to solve the problem in the question. – DavidPostill Jul 12 '16 at 10:59
-
@ِDavidPostill: Its not, a hit was given in the comments, and this unlike gpuz does provide some more information about the issue, However that didnt solve my problem, but I thought its better than nothing. it atleast gives some hints to the problem. – Hossein Jul 12 '16 at 16:12
-
@Hossein tell me more about your actual problem i may be able to help – Uğur Gümüşhan Jul 12 '16 at 16:28
-
@ugurGumushan: Thanks, I was actually looking for for a way to find out what sm, a specific card supports. the compute capability is reported in nvidia site, but the supported sm is not. – Hossein Jul 12 '16 at 20:32
You can use this page to find your GPU "Compute Capability": https://developer.nvidia.com/cuda-gpus Use it for both "compute_xy" and "sm_xy"
- 1
- 1
-
Thanks I appreciate it, but they are not necessarily the same, there are gpus which have a relatively high compute capability, but a very low sm! someone posted some info on this in the cm section of the question, sm actually refers to specific API which the graphics card supports. and I myself encountered the same exact thing! – Hossein Nov 19 '16 at 12:37