-
Notifications
You must be signed in to change notification settings - Fork 739
Compatibility
Depending on the devices you will be using with ccminer, you may not be able to use the default nvcc_ARCH flag.
If you open Makefile.am, you will see near line 119:
#nvcc_ARCH += -gencode=arch=compute_75,code=\"sm_75,compute_75\"
#nvcc_ARCH += -gencode=arch=compute_61,code=\"sm_61,compute_61\"
nvcc_ARCH += -gencode=arch=compute_52,code=\"sm_52,compute_52\"
#nvcc_ARCH += -gencode=arch=compute_50,code=\"sm_50,compute_50\"
#nvcc_ARCH += -gencode=arch=compute_35,code=\"sm_35,compute_35\"
#nvcc_ARCH += -gencode=arch=compute_30,code=\"sm_30,compute_30\"
#nvcc_ARCH += -gencode=arch=compute_20,code=\"sm_21,compute_20\"
If you are controlling numerous devices, you may need more than one of these to run your miners. As you can see, by default there is one uncommented (lacking prepended pound sign [#]). Do note that a previous arch is compatible with all more recent gpus, and that each new arch will make the binary 2x bigger, and compilation 2x slower.
SM 2.x support has been stopped since the CUDA 9 version, and SM 6.x requires at least CUDA 8.
For more information about the different architectures : https://en.wikipedia.org/wiki/CUDA#Version_features_and_specifications
Here is a helpful list based on current documentation from nVidia:
Model | Compatibility | nvcc flag |
---|---|---|
GeForce RTX 2070/2080 | 7.5 (CUDA 10) | nvcc_ARCH = -gencode=arch=compute_75,code="sm_75,compute_75" |
Titan V | 7.0 (CUDA 9.1) | nvcc_ARCH = -gencode=arch=compute_70,code="sm_70,compute_70" |
GeForce GTX 1080 Ti | 6.1 (CUDA 8) | nvcc_ARCH = -gencode=arch=compute_61,code="sm_61,compute_61" |
GeForce GTX 1080 | 6.1 (CUDA 8) | nvcc_ARCH = -gencode=arch=compute_61,code="sm_61,compute_61" |
GeForce GTX 1070 | 6.1 (CUDA 8) | nvcc_ARCH = -gencode=arch=compute_61,code="sm_61,compute_61" |
GeForce GTX 1060 | 6.1 (CUDA 8) | nvcc_ARCH = -gencode=arch=compute_61,code="sm_61,compute_61" |
Tesla P100 | 6.0 (CUDA 8) | nvcc_ARCH = -gencode=arch=compute_60,code="sm_60,compute_60" |
Tegra X1 | 5.3 | nvcc_ARCH = -gencode=arch=compute_53,code="sm_53,compute_53" |
Tegra Xavier AGX | 7.2 (CUDA 10) | nvcc_ARCH = -gencode=arch=compute_72,code="sm_72,compute_72" |
GeForce GTX TITAN X | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 980 Ti | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 980 | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 970 | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 960 | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 950 | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 980 | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 980M | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 970M | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 965M | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce 920M | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce 910M | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
Quadro M6000 | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
Quadro M5000 | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
Quadro M4000 | 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 750 Ti | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
GeForce GTX 750 | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
GeForce GTX 960M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
GeForce GTX 950M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
GeForce 940M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
GeForce 930M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
GeForce GTX 850M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
GeForce 840M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
GeForce 830M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
Quadro K2200 | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
Quadro K1200 | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
Quadro K620 | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
Quadro K2200M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
Quadro K620M | 5.0 | nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
Tesla K80 | 3.7 | nvcc_ARCH = -gencode=arch=compute_37,code="sm_37,compute_37" |
GeForce GTX TITAN Z | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
GeForce GTX TITAN Black | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
GeForce GTX TITAN | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
GeForce GTX 780 Ti | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
GeForce GTX 780 | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
GeForce GT 730 | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
GeForce GT 720 | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
GeForce GT 705* | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
GeForce GT 640 (GDDR5) | 3.5 | nvcc_ARCH += -gencode=arch=compute_35,code="sm_35,compute_35" |
Quadro K6000 | 3.5 | nvcc_ARCH = -gencode=arch=compute_35,code="sm_35,compute_35" |
Quadro K5200 | 3.5 | nvcc_ARCH = -gencode=arch=compute_35,code="sm_35,compute_35" |
Quadro K610M | 3.5 | nvcc_ARCH = -gencode=arch=compute_35,code="sm_35,compute_35" |
Quadro K510M | 3.5 | nvcc_ARCH = -gencode=arch=compute_35,code="sm_35,compute_35" |
Tesla K40 | 3.5 | nvcc_ARCH = -gencode=arch=compute_35,code="sm_35,compute_35" |
Tesla K20 | 3.5 | nvcc_ARCH = -gencode=arch=compute_35,code="sm_35,compute_35" |
Tegra K1 | 3.2 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_32,compute_30" |
Jetson TK1 | 3.2 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_32,compute_30" |
GeForce GTX 770 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 760 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 690 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 680 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 670 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 660 Ti | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 660 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 650 Ti BOOST | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 650 Ti | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 650 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 740 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 780M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 770M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 765M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 760M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 680MX | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 680M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 675MX | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 880M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 870M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K4200 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K4000 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
NVIDIA NVS 510 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K5000 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K2000 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K2000D | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K6000M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K5200M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K5100M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K500M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K4200M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K4100M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K3100M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K2100M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Quadro K1100M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
Tesla K10 | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 860M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" / 5.0 nvcc_ARCH = -gencode=arch=compute_50,code="sm_50,compute_50" |
note | 1152 Kepler Cores with Compute Capability | 3.0 |
note | 640 Maxwell Cores with higher clocks and Compute Capability 5.0 or 5.2 | nvcc_ARCH = -gencode=arch=compute_52,code="sm_52,compute_52" |
GeForce GTX 670MX | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 660M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 750M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 650M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 745M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 645M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 740M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 730M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 640M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 640M LE | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 735M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GTX 480M | 3.0 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_20,compute_20" |
GeForce GT 730M | 3.0 | nvcc_ARCH = -gencode=arch=compute_30,code="sm_30,compute_30" |
GeForce GT 730 DDR3,128bit | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 640 (GDDR3) | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 630 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 620 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 610 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 520 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 560 Ti | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 550 Ti | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 460 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTS 450 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTS 450 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 440 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 440 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 430 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 430 | 2.1 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce 820M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce 800M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 675M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 670M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 635M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 630M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 625M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 720M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 620M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce 710M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce 705M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce 610M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 580M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 570M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 560M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 555M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 550M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 540M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 525M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 520MX | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 520M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 485M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 470M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 460M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 445M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 435M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 420M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GT 415M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce 710M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce 410M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
NVIDIA NVS 315 | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
NVIDIA NVS 310 | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
NVS 5400M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
NVS 5200M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
NVS 4200M | 2.1 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_21,compute_20" |
GeForce GTX 590 | 2.0 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_20,compute_20" |
GeForce GTX 580 | 2.0 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_20,compute_20" |
GeForce GTX 570 | 2.0 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_20,compute_20" |
GeForce GTX 480 | 2.0 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_20,compute_20" |
GeForce GTX 470 | 2.0 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_20,compute_20" |
GeForce GTX 465 | 2.0 | nvcc_ARCH += -gencode=arch=compute_20,code="sm_20,compute_20" |
Quadro Plex 7000 | 2.0 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_20,compute_20" |
Tesla C2075 | 2.0 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_20,compute_20" |
Tesla C2050/C2070 | 2.0 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_20,compute_20" |
Tesla M20xx | 2.0 | nvcc_ARCH = -gencode=arch=compute_20,code="sm_20,compute_20" |
So, basically, if you have a nVidia GeForce GTX 470, and that's all you're using, then you'd want to comment out the other nvcc_ARCH
lines and make sure that only nvcc_ARCH += -gencode=arch=compute_20,code=\"sm_20,compute_20\"
was uncommented. This is especially something to look at if you're dealing with "invalid symbol" errors at runtime.
On windows (Visual Studio), these settings are set (per configuration) in the ccminer.vcxproj project file.