Intel GPU memory allocation

Message boards : Number crunching : Intel GPU memory allocation
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1480788 - Posted: 22 Feb 2014, 23:33:23 UTC

I recent purchased a 2nd i5-4670K to replace my aging HTPC. In configuring the UEFI/BIOS I cam across Internal Graphics Memory Size. Which I can configure from 32MB to 1024MB. It defaults to 64MB & I have it set there. GPUz shows the dynamic memory usage while crunching to be ~157MB.

Both of my machines, 5837483 & 5255585, are using PEG for the primary display & seem to be humming along just fine set to 64MB. However, I wonder if I should increase this or not bother.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1480788 · Report as offensive
Profile Sutaru Tsureku
Volunteer tester

Send message
Joined: 6 Apr 07
Posts: 7105
Credit: 147,663,825
RAC: 5
Germany
Message 1480918 - Posted: 23 Feb 2014, 11:19:46 UTC - in response to Message 1480788.  

To now I have no knowledge about CPUs with graphic inside.
It looks strange, in BIOS you set 64MB and GPU-Z say 157MB usage.
Maybe the first 64MB comes from the reserved system-RAM and the 93MB competes with all other work on the whole system-RAM - and maybe will slow down the crunching.
If it would be my machine, I would set the 1024MB in BIOS, if enough system-RAM is installed for your other work.
You could test it and look if the crunching times will be shorter.
ID: 1480918 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1480935 - Posted: 23 Feb 2014, 14:36:44 UTC

It does seem that the internal GPU is using however much system RAM it needs. I am thinking that the setting is just a limit so that the system does not use all free RAM. Then leave non for GPU. I guess with 16GB in the system & the tasks the systems are running I would never run into this issue. If that is the case I think perhaps I should at least set it to 256MB to avoid any issue, but if it is not needed to be increased I see it as wasteful.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1480935 · Report as offensive
Cruncher-American Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor

Send message
Joined: 25 Mar 02
Posts: 1513
Credit: 370,893,186
RAC: 340
United States
Message 1481299 - Posted: 24 Feb 2014, 18:22:31 UTC - in response to Message 1480935.  

... I see it as wasteful.


Well, odds are you will NEVER come even close to using 16GB at once, no matter what you are doing. I have used 4GB on my SETI machines with 4/8 cores and 2 cards running 3 tasks each and never come close to using the 4GB up.
So is it wasteful to have 16GB? Yes it is, but it is pretty cheap, so...?

Or, as a great philosopher once said, "Don't sweat the small stuff"
ID: 1481299 · Report as offensive
OzzFan Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Apr 02
Posts: 15691
Credit: 84,761,841
RAC: 28
United States
Message 1481309 - Posted: 24 Feb 2014, 19:00:41 UTC - in response to Message 1480788.  

The setting for Internal Graphics Memory Size is the amount system RAM to set aside as base video memory. Nearly all integrated GPUs will utilize extra system memory if not enough base memory exists (I believe this is called NUMA, which allows the CPU and GPU to use the same pool of memory as if it's one large shared pool). The setting merely ensures that the GPU always has at least X amount of system RAM (in your case, you left it at the default of 64MB).
ID: 1481309 · Report as offensive
OzzFan Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Apr 02
Posts: 15691
Credit: 84,761,841
RAC: 28
United States
Message 1481311 - Posted: 24 Feb 2014, 19:03:39 UTC - in response to Message 1481299.  

... I see it as wasteful.


Well, odds are you will NEVER come even close to using 16GB at once, no matter what you are doing.


I don't know about "no matter what you are doing"... I've done some home video editing that has used ~8-12GB of RAM, and when combined with everything else I'm doing on the system, total RAM usage can be as high as 16GB.

Also, when using 64bit 7-Zip to compress large amounts of data, I've seen it use (depending on what settings I select) up to 22GB or more of RAM.

So is it wasteful to have 16GB? Yes it is, but it is pretty cheap, so...?


Agreed. That's why I threw in 32GB of RAM in my daily cruncher. I use the extra RAM in various other applications. I was even able to find 32GB of RAM for my Core 2-based Xeon server for $100 on eBay. Comes in quite handy as a fast cache for my file server.
ID: 1481311 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1481339 - Posted: 24 Feb 2014, 19:31:46 UTC - in response to Message 1481299.  
Last modified: 24 Feb 2014, 19:33:58 UTC

... I see it as wasteful.


Well, odds are you will NEVER come even close to using 16GB at once, no matter what you are doing. I have used 4GB on my SETI machines with 4/8 cores and 2 cards running 3 tasks each and never come close to using the 4GB up.
So is it wasteful to have 16GB? Yes it is, but it is pretty cheap, so...?

Or, as a great philosopher once said, "Don't sweat the small stuff"


This reminded me early days excessive RAM memory usage as RAM-drive.
Interesting, will some software appear that allows to use part of GPU-memory as RAM-drive for system speedup? Perhaps such memory (though slower than usual RAM because of PCIe access) will be faster than SSD and much more suited for constant re-wites...

EDIT: I'm speaking about discrete GPUs memory, of course.
SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1481339 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1481415 - Posted: 24 Feb 2014, 23:06:59 UTC - in response to Message 1481299.  

... I see it as wasteful.


Well, odds are you will NEVER come even close to using 16GB at once, no matter what you are doing. I have used 4GB on my SETI machines with 4/8 cores and 2 cards running 3 tasks each and never come close to using the 4GB up.
So is it wasteful to have 16GB? Yes it is, but it is pretty cheap, so...?

Or, as a great philosopher once said, "Don't sweat the small stuff"

I think you misunderstood my use of "wasteful". Wasteful to allocate resources when not needed. I don't have "SETI machines" I have machines I use that also run SETI@home. One of these two systems is my gaming machine and the other is my HTPC.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1481415 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1481420 - Posted: 24 Feb 2014, 23:15:19 UTC - in response to Message 1481309.  

The setting for Internal Graphics Memory Size is the amount system RAM to set aside as base video memory. Nearly all integrated GPUs will utilize extra system memory if not enough base memory exists (I believe this is called NUMA, which allows the CPU and GPU to use the same pool of memory as if it's one large shared pool). The setting merely ensures that the GPU always has at least X amount of system RAM (in your case, you left it at the default of 64MB).

I haven't thought of NUMA in the sense of the video and CPU sharing memory before. Just in multi processor systems, but that does seem about right.

I'm not sure if BOINC would detected the low memory condition and suspend the task or not. With my HTPC running between ~400-500MB free out of 16GB I think I might need to bump up the value. Rather the system stuff something into swap instead of stuffing a queue of tasks.
Setting 256MB should be sufficient. At least for MB work. If/when I do AP on there then I may have to reevaluate the setting again.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1481420 · Report as offensive
OzzFan Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Apr 02
Posts: 15691
Credit: 84,761,841
RAC: 28
United States
Message 1481625 - Posted: 25 Feb 2014, 13:01:56 UTC - in response to Message 1481420.  
Last modified: 25 Feb 2014, 13:02:04 UTC

I'm not sure if BOINC would detected the low memory condition and suspend the task or not.


That all depends... if BOINC queries the GPU for it's available graphics RAM, and the GPU responds with "I have X", with X being more than the base memory you specified in the BIOS, BOINC may simply just go ahead and use it because it was told that there was more memory.
ID: 1481625 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1481629 - Posted: 25 Feb 2014, 13:27:54 UTC

Would be nice to find any differences between BIOS-allocated and driver allocated memories.
AFAIK both can be pinned so looks like no differences at all.
Perhaps the only difference is that BIOS reserved is guarantied to be while driver allocated depends on amount of free system memory at point when driver does allocation.
SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1481629 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1481631 - Posted: 25 Feb 2014, 13:57:19 UTC - in response to Message 1481625.  
Last modified: 25 Feb 2014, 13:58:49 UTC

I'm not sure if BOINC would detected the low memory condition and suspend the task or not.


That all depends... if BOINC queries the GPU for it's available graphics RAM, and the GPU responds with "I have X", with X being more than the base memory you specified in the BIOS, BOINC may simply just go ahead and use it because it was told that there was more memory.

It does seem the GPU responds with "I have 1624MB". Looking at other Intel GPU hosts several are also reporting 1624MB, but then there are others reporting 728MB or 1496MB. What number they are using I don't know. Perhaps just the max allowable by the driver?

I am one version behind at the moment using 15.33.8.64.3345 & 15.33.14.64.3412 was released Jan 29th. The version may be the difference in the memory size reporting. Similar to NVIDIA in their driver releases some time ago.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1481631 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1481636 - Posted: 25 Feb 2014, 14:29:39 UTC - in response to Message 1481629.  

Would be nice to find any differences between BIOS-allocated and driver allocated memories.
AFAIK both can be pinned so looks like no differences at all.
Perhaps the only difference is that BIOS reserved is guarantied to be while driver allocated depends on amount of free system memory at point when driver does allocation.

Looking over my MB manual I just noticed there is a 2nd setting.
DVMT Total Memory Size: Allows you to allocate the DVMT memory size of the onboard graphics. Options are: 128M, 256M, MAX. (Default: MAX)

In searching for DVMT I found many contradictory statements on exactly what it does vs what it should do. So I shall have to play with this setting to find out if it limits the driver memory usage in some way.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1481636 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1481724 - Posted: 25 Feb 2014, 23:14:17 UTC

After doing some tests. Here are some rather confusing results.
I opted for Graphics Memory Size: 256MB & DVMT: MAX.

Memory Size	DVMT	Video Memory reported to BOINC
32MB		MAX	1624MB
64MB		MAX	1624MB
128MB		MAX	1624MB
256MB		MAX	1496MB
512MB		MAX	1240MB
1024MB		MAX	728MB

32MB		256MB	1624MB
64MB		256MB	1624MB
128MB		256MB	1624MB
256MB		256MB	1496MB
512MB		256MB	1240MB
1024MB		256MB	728MB

32MB		128MB	1624MB
64MB		128MB	1624MB
128MB		128MB	1624MB
256MB		128MB	1496MB
512MB		128MB	1240MB
1024MB		128MB	728MB

SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1481724 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 14654
Credit: 200,643,578
RAC: 874
United Kingdom
Message 1481730 - Posted: 25 Feb 2014, 23:37:18 UTC - in response to Message 1481724.  

From which, do I deduce?

1) DVMT makes no difference at all

2) (Memory Size) + (Video Memory reported to BOINC) <= 1752MB

3) The best Memory Size setting is 128MB: that's enough for a decently rendered screen (not fancy graphics, but legible and colourful), but nothing taken from Compute memory?
ID: 1481730 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1481742 - Posted: 26 Feb 2014, 0:15:09 UTC - in response to Message 1481730.  

From which, do I deduce?

1) DVMT makes no difference at all

2) (Memory Size) + (Video Memory reported to BOINC) <= 1752MB

3) The best Memory Size setting is 128MB: that's enough for a decently rendered screen (not fancy graphics, but legible and colourful), but nothing taken from Compute memory?

It looks like the memory for compute purposes may not reserved/protected. If that is true. I could imagine there might be error scenarios on some system.
I may have to try some tests to see if using all of the system memory effects the running task in any way.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1481742 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1481814 - Posted: 26 Feb 2014, 7:13:18 UTC - in response to Message 1481742.  
Last modified: 26 Feb 2014, 7:13:31 UTC


I may have to try some tests to see if using all of the system memory effects the running task in any way.


With swap enabled I think no, but disk activity could be high. Try to disable swap completely. Then you will get memory allocation errors perhaps.
From your table looks like Intel drivers allocates memory for OpenCL buffers from system heap indeed. Purpose of BIOS reserved memory not too clear, perhaps it's primary surface or smth alike (frame buffer).
To check this one would need really big screen, 32-bit true color mode enabled. Then look what resolutions are available for 32MB setting and for 256MB setting.
SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1481814 · Report as offensive

Message boards : Number crunching : Intel GPU memory allocation


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.