I have a Quadro 2000 which according to this page https://en.wikipedia.org/wiki/CUDA is compute capability version 2.1. I've updated the drivers and it did not make a difference. Is there any way to make this GPU work? As a side note, there is a typo in your error message: capablility has an extra l and should be capability.
I finally figured out how to query the video card info (below). The newest toolkit does not support my video card so I had to go back to v8. As the wiki page suggests, it's compute capability version 2.1. Is there some other check for this card that is failing?
PS E:\Programs\NVIDIA GPU Computing\extras\demo_suite> .\deviceQuery.exe
E:\Programs\NVIDIA GPU Computing\extras\demo_suite\deviceQuery.exe Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "Quadro 2000"
CUDA Driver Version / Runtime Version 8.0 / 8.0
CUDA Capability Major/Minor version number: 2.1
Total amount of global memory: 1024 MBytes (1073741824 bytes)
( 4) Multiprocessors, ( 48) CUDA Cores/MP: 192 CUDA Cores
GPU Max Clock rate: 1251 MHz (1.25 GHz)
Memory Clock rate: 1304 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 262144 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65535), 3D=(2048, 2048, 2048)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 32768
Warp size: 32
Maximum number of threads per multiprocessor: 1536
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (65535, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
CUDA Device Driver Mode (TCC or WDDM): WDDM (Windows Display Driver Model)
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = Quadro 2000
Result = PASS
I am having the same problem during the Depth Map phase. I get the error "This program requires a CUDA-enabled GPU (with at least compute capability 2.0). I have a GeForce GTX 1050, which runs CUDA and has a compute capability of 6.1. I have tried reinstalling my drivers, which has not worked, and my GTX 1050 driver is up-to-date. Anyone have any ideas on how to solve this?
I have the same problem too, with GTX 960M in the depth map phase. I'm sure that CUDA 9.0 was properly installed, since I can run TensorFlow on GPU without any problems. The nvidia-smi also shows that meshroom uses my GPU (and in the previous phases, like Feature matching I see in the GPU usage, that it is actually used). Downgraded to CUDA 8.0, but the problem still occours.
Is there anybody out there?
Sorry, we don't have the time to look at it right now, but will come back to you.
The code where we test the capabilities of the device is here:
https://github.com/alicevision/AliceVision/blob/develop/src/aliceVision/system/gpu.hpp
Thanks @fabiencastan I'll take a look, but unfortunately I don't know anything about cuda so I'll probably have to wait for a fix. If I find anything I'll post back. If you need any logs or more system info let me know.
Same problem, I have a 1070 and 1080 which both support CUDA. Would be great to have a more detailed error message. I managed to get past this issue with a reboot.
What about Mac OSX version? It has CUDA drivers.
I don't have a Mac.
I'm having this problem too. I have a laptop with integrated graphics(intel HD 630) as well as a gtx1060. I believe the problem is meshroom Is detecting the HD630 and isn't looking for other attached GPUs. No fix yet?
Quadro P600. Same error.
I have downloaded the precompiled version (2018.1.0) instead of compiling it myself and now it works.
The precompiled version (2018.1.0) does not work for me.
@atsage are you using windows 7?
Difficult to analyze it without more explicit error messages.
If someone has built it manually, the "develop" branch of AliceVision should provide more precise error messages now (else it will be included in the next release).
@natowi No, I'm on windows 10 64 bit.
@fabiencastan I attempted to build the project manually a while ago, but unfortunately it would require more time than I'm willing to put in to it to learn how to do it. I believe it was the AliceVision stuff I couldn't get compiled. Hopefully someone else here already knows how it's done and can help out. If not, as you said the next release will provide these errors, I will post whatever comes up then.
Same problem here with Nvida Quadro K4000 with win 10, CUDA 6.0.1, but same error on Depth Map node where message is:
This program needs a CUDA-Enabled GPU (with at least compute capablility 2.0)
I have seen strange behaviour of the cudaGetDeviceProperties function in two situations:
I did not dig deeply, but the cards seem to work to some extent if we don't check for device properties at all. Unfortunately not calling cudaGetDeviceProperties is not really an option for us because we need to know how much memory each of the cards has.
I have a Quadro 4000 and have the same issues. I was looking at the code that @fabiencastan
referenced here
My error message is specifically "Can't find CUDA-Enabled GPU." which seems to indicate that cudaGetDeviceCount is not returning any devices. I'm installing the CUDA toolkit now to run the CUDA capability detection from the sample script, but I think this may be a problem with NVIDIA's toolkit, or maybe a driver issue?
@atsage if you set that node to debug logging, you may get more details. The message "This program needs a CUDA-Enabled GPU (with at least compute capablility 2.0)" looks like a generic failure notification here
@NonSecwitter I've already ran deviceQuery.exe and it comes back with a valid card for me. Not much more info even setting the node to trace:
[15:11:24.142941][info]
[15:11:24.150426][debug] Can't find CUDA-Enabled GPU.
[15:11:24.150426][error] This program needs a CUDA-Enabled GPU (with at least compute capablility 2.0).
@atsage That's interesting because the error you got only happens when cudaGetDeviceCount is called and the result is zero. So, it seems there is either an issue with the CUDA or a problem with how it's called.... the call looks accurate per specs, so I'm curious why the toolkit is showing zero devices.
I'll take a closer look at this tonight or tomorrow...
Did you look through the deviceQuery.exe source code? Is it even calling cudaGetDeviceCount ??
I'm having the same error at DepthMap. I have a GTX980m
Several people who have this problem have mobile cards, perhaps we are missing something when GPUs from different vendors exist in the computer? Newer OSes can switch on-demand between integrated low-power and discrete NVidia GPU, but perhaps we have to do something to tell the OS that we have such a demand?
Okay... I think I figured this out... Meshroom is using cudart64_91.dll, which is the 9.1 toolkit, when calling cudaGetDeviceCount. For me, my card is incompatible with anything newer than 7.5 cudart64_75.dll. Although it is still CUDA 2.0 compatible, the RT won't work with my drivers.
I'm guessing there is a reason for updating to 9.1, so maybe we can fix this by figuring out the oldest version with cudaGetDeviceCount available and loading it specifically for compatibility checking?
Is there any workaround we can attempt? I'm so close!!! hahaha, this software is truly amazing, I can't wait to see what it can do.
The only CUDA-version / minimum CC table I've found (https://stackoverflow.com/a/28933055 - from someone working at NVIDIA) indeed shows that CUDA 9.1 requires CC >= 3.0. Despite the fact that the documentation of cudaGetDeviceCount is still Returns the number of devices with compute capability greater or equal to 2.0, even in the 10.0 SDK. It seems like CUDA 8.0 would still be compatible with CC 2.0, but in all cases this would require a new build of AliceVision.
Yann, your post gave me the idea to search for functions that can at least give us better error messages (something like "This release expects CUDA SDK 10, you have CUDA SDK 9"):
cudaDriverGetVersion(int* version) - returns the system's current CUDA driver version
cudaRuntimeGetVersion(int* version) - return the system's current runtime (SDK) version; version = 1000major+10minor, CUDA SDK 92 -> 9020
Also, we could revise the memory check. Compute capability 2 cards could already report their major/minor compute capability and totalGlobalMem in cudaGetDeviceProperties, but CUDA 2 did not have the cudaGetMemInfo function at all, it was apparently impossible to check available memory. Worst case guessing is probably the way to go.
I might be the only one, but for me either a restart of Meshroom or a driver update worked.
I checked and my driver was 2 years old, after the update I didn't get the error message and it went straight through.
Others were reporting driver updates work, but it looks like if you have under compute capability 3 card it just will not work for now.
Same thing here sadly. Stops at depth map. Quadro M1000M (Compute Capability 5.2) I have tried disabling the Intel GPU it did not help. Any workarounds?
Edit: After installing latest Nvidia drivers it seems to be going forward.
Same Problem with meshroom version Version 2018.1.0, Windows 10, Python 3.6.5 and a K4200 GPU and Intel Xeon E5 1650 v3. From my understanding this should fulfill the requirements. I have the driver version 22.21.13.8607 installed that dates to 19.12.2017
Updating GPU drivers did the trick for me. Very very very cool software.
Same problem with meshroom
Version 2018.1.0
Linux 4.15.0-43-generic
Python 3.6.3
Graphics: Card-1: Intel UHD Graphics 620 bus-ID: 00:02.0 chip-ID: 8086:5917
Card-2: NVIDIA GM108M [GeForce MX130] bus-ID: 01:00.0 chip-ID: 10de:174d
Display Server: x11 (X.Org 1.19.6 ) drivers: modesetting (unloaded: fbdev,vesa)
Resolution: [email protected]
OpenGL: renderer: Mesa DRI Intel UHD Graphics 620 (Kabylake GT2)
version: 4.5 Mesa 18.0.5 (compat-v: 3.0) Direct Render: Yes
Driver:
Neither
xserver-xorg-video-nouveau 1.0.15-2
nor
nvidia-driver-390 390.77-0ubuntu0.18.04.1
works
0.log:
Program called with the following parameters:
* downscale = 2
* ini = "/opt/Meshroom-2018.1.0/MeshroomCache/PrepareDenseScene/84e8aaeb289933f02855114c389b10546e686fb5/mvs.ini"
* output = "/opt/Meshroom-2018.1.0/MeshroomCache/DepthMap/0b0bfbc6366bd17faf7b6e98c41ce745af44cdfa"
* rangeSize = 3
* rangeStart = 0
* refineGammaC = 15.5
* refineGammaP = 8
* refineMaxTCams = 6
* refineNDepthsToRefine = 31
* refineNSamplesHalf = 150
* refineNiters = 100
* refineSigma = 15
* refineUseTcOrRcPixSize = 0
* refineWSH = 3
* sgmGammaC = 5.5
* sgmGammaP = 8
* sgmMaxTCams = 10
* sgmWSH = 4
* verboseLevel = "info"
[01:02:55.364140][info]
[01:02:55.364369][error] This program needs a CUDA-Enabled GPU (with at least compute capablility 2.0).
Update graphics driver and will work. Had same problem until update!
@Allecsxx that is not the solution for this issue.
@ats1080 it did worked for me.
Win8.1
Geforce 820M
@Allecsxx sure, but this issue is specifically relating to under compute capability 3 cards. There is a bug that no matter what driver you use it just will not work.
the driver update didn't worked for me. quadro 2000
@vsolenoid when using Ubuntu with Nvidia driver for the quadro 2000 it detected the graphics card correctly. But when trying to compute a model it ran into a gpu ram overflow. Does anyone have a recommendation on how much gpu ram is necessary?
@vsolenoid when using Ubuntu with Nvidia driver for the quadro 2000 it detected the graphics card correctly. But when trying to compute a model it ran into a gpu ram overflow. Does anyone have a recommendation on how much gpu ram is necessary?
You may be able to get away with the 1GB you have by dropping the overall density/quality of the pipeline. Alternatively, could try downsampling your imagery. "How much is necessary" will depend largely on what you are attempting.
@fabiencastan Is there any update?
Having same issue with my GT640...
I am also having the same issue, but just love what they have done with Meshroom. If someone could tell me the exact video card to buy I will run out and get it.
I have ended up running out an buying a "new" (used) PC - Dell 3610 with K4000 and 32RAM and the program started from the first time. Anyway, the results with default setting aren't impressive(even if they still need 8 to 12 hours for a run), so I'm trying all other options. So far 3dzephir is leading with most accurate dense point clouds. Just to be clear - I'm trying to create a 3D model of a person and in most of the sets of pictures he has moved a bit. I don't have any tests with a static object.
@vsolenoid 3d scans of persons are a difficult task. For good results, the person should not move even a bit. For capturing persons you should use a camera rig or at least try to steady the person (place them on a chair or provide a pole to lean on. A hairnet might also be helpful).
@ToddVG I have a GTX1080 and the latest drivers and Meshroom works for me. There are also other users with GTX10xx GPUs and no issues (e.g. GTX1060), so the problems listed here might be related to specific setup/driver combinations.
I have the same problem that Meshroom does not see my CUDA nvidia GTX1050 in my optimus laptop. I am using OpenSuse Tumbleweed, and I know that CUDA works in other software. I can even run the Windows version of Meshroom with wine as follows: optirun wine Meshroom.exe, and then everything works. But when running the Linux version, it complains about not finding a CUDA enabled GPU.
How do you do Depth Mapping without a CUDA enabled GPU?
@Killian3145 within Meshroom you could try Draft Meshing.
Otherwise, have a look at OpenMVG, MicMac or Regard3D
Thanks, this worked well. But it still sucks that you can't do depth mapping without a CUDA enabled GPU.
@Killian3145 Removing CUDA dependency is being discussed. Read this for details.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue is closed due to inactivity. Feel free to re-open if new information is available.
Happening here with me too, ubuntu 18.04 and a GTX1080TI
Seems to work for me with the latest mesh room version an Nvidia K4200--聽Felix Piela聽August & Piela Konstruktiv GbR聽Tempelhofer Weg 11-12聽10829 Berlin聽Tel 030 91905511聽Mobil 015231937441聽Fax 030 9190 9733-------- Urspr眉ngliche Nachricht --------Betreff: Re: [alicevision/meshroom] This program needs a CUDA-Enabled GPU (with at least compute capablility 2.0). (#260)Von: nmz787 An: alicevision/meshroom Cc: Felix Piela ,Comment Happening here with me too, ubuntu 18.04 and a GTX1080TI
鈥擸ou are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.
Got it on asus geforce gts 250
Most helpful comment
I have the same problem that Meshroom does not see my CUDA nvidia GTX1050 in my optimus laptop. I am using OpenSuse Tumbleweed, and I know that CUDA works in other software. I can even run the Windows version of Meshroom with wine as follows: optirun wine Meshroom.exe, and then everything works. But when running the Linux version, it complains about not finding a CUDA enabled GPU.