2020 15" Samsung Galaxy Book Flex [10th,4C,U] + RTX 2070 @ 32Gbps-TB3 (Razer Cor...
 
Notifications
Clear all

2020 15" Samsung Galaxy Book Flex [10th,4C,U] + RTX 2070 @ 32Gbps-TB3 (Razer Core X Chroma) + Win10  

 of  2
  RSS

arokha
(@arokha)
Active Member
Joined: 2 months ago
 

After seeing itsage's build here I decided to try my own hand at a Galaxy Book Flex build, and wanted to document it here as it has several workarounds for issues I encountered along the way. Hopefully others with the same/similar laptop can find this useful.

 

System specs

2020 Samsung Galaxy Book Flex (Samsung 950QCG), 15" QLED Screen (1080p)

Intel Core i7-1065G7 CPU @ 1.30GHz (Ice Lake-U, 15W TDP)

Intel Iris Plus Graphics 940 (Ice Lake-U GT2 64EU, 1GB dedicated vram)

Windows 10 Professional x64 Build 19041.450 (2004/May 2020 Update)

Using a LG GSM76E4 Ultrawide monitor as an external display via GPU, and the laptop's integrated 1080p display

 

 

eGPU hardware

Enclosure: Razer Core X Chroma (with all 4 extra USB ports occupied)

GPU: MSI RTX 2070 Gaming Z (NVIDIA GeForce RTX 2070, 8GB GDDR6 vram)

Cable: This cable from Amazon, though the Core Chroma included one. I ended up using it for something else because the one from Amazon is slightly longer.

 

 

Hardware pictures

Can't upload images directly because this is my first post, but have a direct link to Imgur.

 

 

Installation steps

1) Assembled Chroma Core (installed GPU, connected PSU, no issues)

2) Connected via TB3 to laptop rearmost port on right side (laptop has two TB3 ports on right side)

3) Waited, after an extended period, Windows installed old NVIDIA drivers.

4) Replaced NVIDIA drivers with modern ones (451.67, signed Jul 04, 2020)

5) Encountered several issues, with workarounds documented below

 

Benchmarks

Again new to all of this, so can't directly post images and only the trial version of AIDA, but, cut me some slack!

AIDA Benchmark

CUDA-Z Benchmark

 

Comments

-- Issue 1: Freezing --

I encountered very frequent freezing, similar to itsage (post linked at top). I fixed it without reverting to old drivers by adjusting two things:

1) In the NVIDIA Control Panel, Manage 3D Settings > Global Settings Tab > Power management mode: Prefer maximum performance

2) Added two vales to the registry (both DWORD):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers + TdrDdiDelay = 20 (dec)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers + TdrDelay = 10 (dec)

This resolved the freezing issue I was encountering, and allowed me to remain on current drivers.

 

-- Issue 2: Input Delay --

I noticed there was some input delay with the mouse (something I'm personally sensitive to, but perhaps wouldn't annoy others). I fixed this by adjusting a setting in Windows 10, "Hardware-accelerated GPU scheduling" was disabled, so I enabled it and rebooted. I feel like the input delay issue is gone (and this setting does reportedly affect that).

 

-- Issue 3: NVIDIA GPU disconnect button --

When the eGPU is connected, the NVIDIA software tosses a little GPU status monitor icon in the system tray that shows processes using the NVIDIA GPU. I remember having this app on an old laptop with Optima and stuff. ... Anyway, it has a 'Disconnect GPU' button that I assume is similar to the sort of 'Safely remove USB devices' thing Windows has, where it can scrape processes away from the GPU. After clicking it, the button changes to 'Connect GPU'.

Problem is, after using it and unplugging the TB3 cable, the icon disappears (I assume NVIDIA considers itself no longer needed and kills that process). Reconnecting the cable to the eGPU does nothing (other than connect me to the extra USB ports on the enclosure), because... that 'Disconnect GPU' seems to just disable the GPU in device manager! So whip up devmgmt.msc and re-enable the NVIDIA GPU there once connected via TB3, and it tosses the display right back up. It would be nice if that app would stay open, but, whatever.

 

Hopefully this can help someone out there.

2020 15" Samsung Galaxy Book Flex [10th,4C,U] + RTX 2070 @ 32Gbps-TB3 (Razer Core X Chroma) + Win10 [build link]  

nando4 and itsage liked
ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 4 years ago
 

@arokha, Thank you for sharing this build and the excellent instructions to remedy freezing issue with RTX eGPU! Can't believe Samsung cut cost with whichever lowest cost NVMe drive they could find. I don't understand the 12GB soldered RAM either. This laptop is otherwise very good. 

 

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide

 
2013 Mac Pro (FP D500 x2) [3rd,12C,E] + RX 5700 XT @ 16Gbps-TB2>TB3 (Mantiz Saturn Pro) + macOS 11 [build link]  


ReplyQuote
arokha
(@arokha)
Active Member
Joined: 2 months ago
 

Yes, a bit strange. I'm more a fan of WD at least so I got that drive. Overall an enjoyable laptop. I have a bit of buyer's remorse for maybe a Yoga or an XPS 15, but I don't have any real complaints that I haven't just been able to fix.

I'd like to find a way to script re-enabling the nvidia GPU. Maybe a scheduled task that tries to re-enable it every hour, so as long as I'm undocked for one of those periods, I won't need to open device manager to re-enable it. Or just a way to make the nvidia applet stay open so I can click that 'Connect GPU' button.

2020 15" Samsung Galaxy Book Flex [10th,4C,U] + RTX 2070 @ 32Gbps-TB3 (Razer Core X Chroma) + Win10 [build link]  

ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 4 years ago
 

@arokha, I've used previous generations of Yoga and XPS. I still think the Samsung has better build quality. That QLED display is very nice. I wish it was a regular laptop form factor without a touch screen.

The disabled status in Device Manager upon hot-unplug is something I've noticed too. Would be great if you figure out a solution!

 

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide

 
2013 Mac Pro (FP D500 x2) [3rd,12C,E] + RX 5700 XT @ 16Gbps-TB2>TB3 (Mantiz Saturn Pro) + macOS 11 [build link]  


ReplyQuote
arokha
(@arokha)
Active Member
Joined: 2 months ago
 

I'm messing around in powershell with a friend to try and come up with a solution. It can potentially be handled by either listening to window messages or WMI events, and do something when it's reconnected, like opening the little GPU applet or just re-enabling the device (fairly safe bet given if you just plugged it in, you want to use it).

2020 15" Samsung Galaxy Book Flex [10th,4C,U] + RTX 2070 @ 32Gbps-TB3 (Razer Core X Chroma) + Win10 [build link]  

ReplyQuote
aurelius pontius
(@aurelius_pontius)
New Member
Joined: 2 months ago
 

Nice build!!

To do: Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.

.

ReplyQuote
arokha
(@arokha)
Active Member
Joined: 2 months ago
 

Behold, @itsage, GPUbap.ps1. It runs (make sure it's running as an admin, otherwise it can't enable devices), waits for devices to be connected to your Windows machine, and checks to see if a GPU (by name) is connected, but disabled. If so, it enables it.

You should configure two lines in the script: the name of your GPU, and how many seconds until it's enabled after being detected. That is also how long you have to unplug the cable after clicking 'Disconnect GPU' before it re-enables it. Not because of the loop (not really a loop, see below), but because some event during that NVIDIA applet's shenanigans reconnects various devices and triggers the script.

Tech stuff:

Due to limitations in WMI and window messages, it's 'very annoying' to actually set up a way to get notified when specific devices are connected. I'm totally open to someone improving this though, please, someone, anyone, lol. So, for now, it checks the GPU every time you connect a new device to your laptop (how often is that, really?).

The script does run in a loop, but it's not a tight loop. The loop is setting up an event listener (for a device change) and then waiting on that, so it's not using CPU while just waiting. It does use CPU every time a device comes or goes on your PC, but, very little.

I tested this and it works fine for me, but...

#Requires -version 2.0
<#
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
#>

# The 'friendly name' of your GPU, as displayed in Device Manager
# Alternatively you can rewrite the script to use a hardware ID but this way
# is easier for less tech-savvy people, in my opinion.
$gpuFriendlyName = "NVIDIA GeForce RTX 2070"

# How long after a change in GPU connectivity do we wait before enabling?
# Somewhere in the activity after clicking 'Disconnect GPU' in the NVIDIA applet,
# there fires a device attach event, and the GPU will reconnect. You have this long
# to remove the cable from your computer before the GPU turns back on.
$sleepTime = 5 # seconds

# Scripty bits below here.
Unregister-Event -SourceIdentifier eGPUWatchDevChange -erroraction 'silentlycontinue' # Just in case we failed last time.
Write-Output "Waiting for device: '$gpuFriendlyName'" 
Register-WmiEvent -Class Win32_DeviceChangeEvent -SourceIdentifier eGPUWatchDevChange
do {
    $newEvent = Wait-Event -SourceIdentifier eGPUWatchDevChange
    $eventType = $newEvent.SourceEventArgs.NewEvent.EventType
    if ($eventType -eq 2#Type 2 is 'Device Arrival'
    {
        Write-Output "A device has arrived, checking the GPU."
        $gpu = Get-PnPDevice -FriendlyName $gpuFriendlyName
        
        Write-Output "GPU Presence is: '$($gpu.Present)'"
        Write-Output "GPU Status is: '$($gpu.Status)'"
                
        if ($gpu -And $gpu.Present -eq "True" -And $gpu.Problem -eq "CM_PROB_DISABLED")
        {
            Write-Output "GPU seems disabled, waiting $sleepTime seconds and then enabling if it still needs it."
            Start-Sleep -Seconds $sleepTime
            pnputil /enable-device $gpu.InstanceId # Fails gracefully if no longer present.
        }
    }
    Remove-Event -SourceIdentifier eGPUWatchDevChange
} while (1-eq1) #Loop until next event
Unregister-Event -SourceIdentifier eGPUWatchDevChange
2020 15" Samsung Galaxy Book Flex [10th,4C,U] + RTX 2070 @ 32Gbps-TB3 (Razer Core X Chroma) + Win10 [build link]  

ReplyQuote
gerd fuafsljfe
(@gerd_fuafsljfe)
Eminent Member
Joined: 4 months ago
 

@arokha

 

I dont have the time to really look into it but maybe this could be helpfull: https://www.reddit.com/r/eGPU/comments/cdqu5w/autodisable_your_igpus_automagically_using_a/

 

2020 14" Acer Swift 3 [10th,4C,G] + RTX 2070 Super @ 32Gbps-TB3 (Razer Core X) + Win10 [build link]  

ReplyQuote
arokha
(@arokha)
Active Member
Joined: 2 months ago
 

@gerd_fuafsljfe, pretty similar to what I wanted, but backwards. I end up with my eGPU disabled, and want to enable it. They want to disable the iGPU. Would have been easy to repurpose that script though! They did basically the same thing, though (except I couldn't get Enable-PnPDevice to work at all on the graphics card device, only pnputil).

 

2020 15" Samsung Galaxy Book Flex [10th,4C,U] + RTX 2070 @ 32Gbps-TB3 (Razer Core X Chroma) + Win10 [build link]  

ReplyQuote
arokha
(@arokha)
Active Member
Joined: 2 months ago
 

Minor update: I went through three separate external drive enclosures, attempting to connect to the laptop or the eGPU (as it has 4 USB ports), as well as to the GPU itself (which has a type-c port). All three enclosures would simply 'cut out' at high writes, disconnecting from the machine. The disk in the enclosure is a 2TB Crucial SSD. 

I ended up finding this Sabrent enclosure which has an external power supply and that seems to have fixed that issue.

2020 15" Samsung Galaxy Book Flex [10th,4C,U] + RTX 2070 @ 32Gbps-TB3 (Razer Core X Chroma) + Win10 [build link]  

ReplyQuote
 of  2