BOINC causes "device is not removable and cannot be ejected or unplugged."

Message boards : GPUs : BOINC causes "device is not removable and cannot be ejected or unplugged."
Message board moderation

To post messages, you must log in.

AuthorMessage
derelict

Send message
Joined: 16 Apr 13
Posts: 3
Portugal
Message 71832 - Posted: 24 Aug 2016, 9:05:37 UTC

I have a Nvidia Geforce 930M on my laptop, and installed the latest BOINC version and attached Rosetta and GPUGrid.

Now, whenever BOINC starts, I get an error saying that "Device Nvidia Geforce 930M is not removable and cannot be ejected".

After that, my GPU is no longer recognized in Device Manager (it gets moved from the Display Adapters section to the Other Devices section).

This only happens if/when I start BOINC, both with older Nvidia drivers (two versions ago) and with the latest drivers.

Is there any fix for this?
ID: 71832 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15493
Netherlands
Message 71845 - Posted: 24 Aug 2016, 12:08:30 UTC - in response to Message 71832.  

This looks to be an Nvidia bug. See for instance all the help and advice in this Geforce forums thread, with key advice being: "Keep in mind Laptops have 2 GPU's - their drivers have to work together, so you may have to find the right combination."
ID: 71845 · Report as offensive
derelict

Send message
Joined: 16 Apr 13
Posts: 3
Portugal
Message 71856 - Posted: 24 Aug 2016, 16:22:48 UTC

I struggle to see how this is an Nvidia bug, namely because it only happens if and when I start BOINC Manager.

It rather seems like BOINC's handling of GPUs is a bit shaky, given that I can run virtually any GPU-demanding software (e.g. games, benchmarks) and that I've tried BOINC with two different Nvidia drivers, namely the latest stable version. I've also run GPUGrid on another laptop with different Intel + Nvidia GPUs without this happening.

I really don't feel like going throught the trial & error of uninstalling and reinstalling multiple versions and combinations of drivers for 2 GPUs on a system that's working perfectly, so, sadly, the solution seems to be to abandon GPUGrid until BOINC's GPU support improves...judging by the amount of posts and tutorials related to getting BOINC to actually use a GPU, I hope it's anytime soon...
ID: 71856 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15493
Netherlands
Message 71859 - Posted: 24 Aug 2016, 16:58:35 UTC - in response to Message 71856.  

BOINC's handling of GPUs

All BOINC does is detect whether a GPU is there, and what its capabilities are. It doesn't do anything else, it doesn't strain them, it doesn't use them - well, other than for the built-in screen saver. All the using for calculations and straining is done by the project's science applications, so if there would be trouble here, it would be best to report that at the project.

But did you even look at the thread I linked to? Or did you just shrug it off, because you feel it isn't the solution to your problem, even when 10 people in the thread show the exact same error message, though with their different Nvidia GPUs?

How about the people at Toms Hardware, Reddit, or Nvidia themselves?

Quoting from that last page, dated February 3rd, 2016:
GeForce Hot Fix driver 361.82

This is an update to the recent GeForce 361.75 Game Ready drivers which fixes a bizarre sounding bug which allows a user to 'eject' Nvidia GPUs via the system tray. It is thought that the underlying reason that your GPUs may appear as removable devices is down to the recently implemented support for external graphics solutions over Thunderbolt 3.

Whether downloading and installing a 300MB file to fix this bug is worthwhile is questionable, as most users are unlikely to accidentally eject anything via the system tray icons. Also, it seems like if you do try and eject your GPU you get an error message saying "Problem ejecting Nvidia GeForce [model number]", explaining that the "device is not removable and cannot be ejected or unplugged".

The Nvidia hotfix driver is available for Windows 7, 8, and 10 in either 32-bit and 64-bit versions.


judging by the amount of posts and tutorials related to getting BOINC to actually use a GPU...

If you look at the threads in question, you'll see that in Linux it's problematic, not so much in OS X or Windows.

I really don't feel like going throught the trial & error of uninstalling and reinstalling multiple versions and combinations of drivers for 2 GPUs on a system that's working perfectly

Your system, your decision.
ID: 71859 · Report as offensive
derelict

Send message
Joined: 16 Apr 13
Posts: 3
Portugal
Message 71872 - Posted: 25 Aug 2016, 10:01:11 UTC - in response to Message 71859.  
Last modified: 25 Aug 2016, 10:01:33 UTC


All the using for calculations and straining is done by the project's science applications, so if there would be trouble here, it would be best to report that at the project.


The problem occurs as soon as I start BOINC Manager, well before any work units start running.

But did you even look at the thread I linked to? Or did you just shrug it off, because you feel it isn't the solution to your problem, even when 10 people in the thread show the exact same error message, though with their different Nvidia GPUs?


Like I wrote, I had gone through the process of updating drivers before posting. I had also gone through the pages you linked, hence the driver change experience. The latest BOINC version causes this problem with two different official Nvidia drivers.

Rolling back drivers on a working system seems a bit absurd, especially when there's no actual explanation for the problem and the approach is essentially "let's try every version and see if BOINC works, even though every other GPU intensive software works fine".


If you look at the threads in question, you'll see that in Linux it's problematic, not so much in OS X or Windows.


I've been a BOINC user for a long time now. Windows GPU support has been far from good or stable. BTW, the Nvidia (actually hexus.net) link you posted states that 'it seems like if you do try and eject your GPU you get an error message saying "Problem ejecting Nvidia GeForce [model number]", explaining that the "device is not removable and cannot be ejected or unplugged"' , so it seems reasonable that some piece of software (or a bug) is causing this eject attempt.

Your system, your decision.


Not sure that's a great way to get volunteers for a project, but thanks anyway.
ID: 71872 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15493
Netherlands
Message 71883 - Posted: 25 Aug 2016, 14:58:39 UTC - in response to Message 71872.  

The problem occurs as soon as I start BOINC Manager, well before any work units start running.

The BOINC client (thus not the BOINC Manager, which is the graphical interface allowing you to easily control the underlying client) does a couple of things on start up.

It checks among things what kind of CPU you have and what its capabilities are, then it checks for the availability of an nvcuda.dll, an aticalrt64.dll, amdcalrt64.dll, aticallrt.dll, or amdcallrt.dll and an OpenCL.dll file on your system.

When it's an Intel CPU, BOINC checks if it has an Intel coprocessor and if so what kind that is.
In the case of the availability of the NVCUDA file, it will check in that library what kind of GPU you have.
In the case of the ATI/AMD files, it will check in those libraries what kind of GPU you have.
When OpenCL is also found on the system, all OpenCL capable hardware is recognized.

BOINC will print all of what it finds in the event log.

All of the library files have been put onto your system by the videocard drivers. Any bug in those videocard drivers can crash the detection process BOINC does, or show other weird artifacts.

Using CUDA and OpenCL cannot be compared to using DirectX and OpenGL. Although it runs on the same hardware, the drivers are completely different, even the heat output can be completely different. So saying that because other GPU intensive applications can run things perfectly fine without the error cannot be compared to reading from a library file and polling the hardware what it says it is.

It's really not up to BOINC to go fix these problems, as they're caused by something that isn't internal in BOINC and therefore cannot be fixed by BOINC.

All systems with two or more GPUs will need TLC from their owner, if you want to use all of it without problems you'll have to spend some time on it to make it do what you want. When you want to use both an Nvidia and AMD GPU in one system, there are rules as to what driver you should install first, else it'll just not work, or not work correctly.

Many problems with BOINC detecting the GPUs is caused by drivers. Some drivers don't include the necessary components - any driver installed by Microsoft for instance may lack CUDA, CAL, OpenCL, OpenGL etc. because these are direct competitors to Microsoft's own DirectCompute and DirectX. (And as the Windows 10 Anniversary Update showed, they'll remove any trace of the competitors from system32 upon installation of Wind10 AU).

Yep, there are still bugs in BOINC, and there are probably still bugs in the detection system, but mostly for AMD GPUs because their naming convention is a little weird. When BOINC reads the info about an Nvidia card, it reads the info directly from the library and card. In the case of AMD, in the days of old, they had general group names, so you could have an old HD6850 and a new R7 that had the same name, but were completely different beasts. Luckily with OpenCL detection that got better.

Trouble with Nvidia is that they see OpenCL as a direct competitor to their own CUDA, so for a while they didn't develop it for their top branch. Meaning that you have a lot of pretty good GPUs out there that do just OpenCL 1.0 or OpenCL 1.2, while OpenCL itself is already at version 2.2

Anyway, I digress. I see you've put the same question at Github/BOINC, so wish you luck in getting it fixed. But in my opinion, that fixing is still something you have to do yourself, not BOINC.
ID: 71883 · Report as offensive

Message boards : GPUs : BOINC causes "device is not removable and cannot be ejected or unplugged."

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.