#996 closed Defect (wontfix)
BOINC doesn't detect NVIDIA GPU on new macbook pros
Reported by: | MattArsenault | Owned by: | charlief |
---|---|---|---|
Priority: | Minor | Milestone: | Undetermined |
Component: | Client - Daemon | Version: | 6.10.56 |
Keywords: | GPU Macbook | Cc: |
Description
On the 2010 Core i5/i7 Macbook Pros, there is a discrete Nvidia GPU and intel integrated graphics which OS X switches between depending on applications which make use of it to save power. I believe it determines this by checking which applications link against CoreAnimation?, although there is a way to query the graphics available.
If the Intel card is running, doesn't detect the Nvidia card and BOINC reports no usable GPUs found. If you run something else to bring up the Nvidia card, BOINC detects it and uses it.
The previous generation of Macbook pros also had 2 video cards, but they were both usable Nvidia cards. One was more powerful, but required logging out to switch between them. It might be useful if 2 GPUs are detected, to recommend switching to the more powerful one for running BOINC.
Other new laptops are also getting similar multi-GPU setups, and may also be effected by this problem.
I don't really know Objective C and I'm not familiar with the OS X APIs, but there is currently a project which detects the currently running GPU, and allows forceable switching at http://github.com/codykrieger/gfxCardStatus, which may be a useful reference if somebody who knows about OS X development wants to try fixing this.
Change History (5)
comment:1 Changed 14 years ago by
Component: | Manager → Client - Daemon |
---|---|
Keywords: | GPU, Macbook → GPU Macbook |
Owner: | changed from romw to charlief |
comment:2 Changed 14 years ago by
comment:3 Changed 14 years ago by
Resolution: | → wontfix |
---|---|
Status: | new → closed |
We don't know of a simple way to fix this automatically that will continue to work for future versions of Apple's hardware and software. Not only would the BOINC client need to set the GPU to NVIDIA so it can detect it, all GPU project applications would also need to somehow trigger a switch to the NVIDIA GPU.
Though it is less than an ideal solution, I have added information to the GPU Wiki page about ways to manually switch to the NVIDIA GPU.
comment:4 Changed 14 years ago by
If someone isn't aware of this, it could be worked around simply by having the BOINC manager link against the OpenGL framework, i.e. compile with -framework OpenGL. Currently it starts the card if anything links against GL.
comment:5 Changed 14 years ago by
"it could be worked around simply by having the BOINC manager link against the OpenGL framework"
Unfortunately, there are a few problems with that. First, it is the BOINC Client, not the Manager, that needs to check for GPU availability. While the Manager does launch the client in a standard installation, this won't take care of situations where the Client is configured to be launched as a daemon at system startup.
Also, the NVIDIA GPU would remain selected until the manager quits, even if there are no GPU-capable project applications running. When running on batteries, the default settings are for BOINC to suspend computation to save battery power, but the NVIDIA GPU would remain selected, draining the batteries for no reason.
A possible workaround is to set the MacBook? to always use the NVIDIA GPU as described here.