hi Intel friends,
OS: Ubuntu 12.04
I have three questions as below
Q1. the description "Video memory surfaces allow greater efficiency by avoiding explicit copies." in section 3.2 simple 2 decode vmem. What the "explicit copies" means ??
Q2. the description "By moving from system to video memory implicit copies are eliminated" in section 4.2 simple 3 encode vmem. What the "implicit copies" means ??.
Q3. As we know, the system memory has its frequency 1333Mhz (http://ark.intel.com/products/75044/Intel-Core-i5-4570S-Processor-6M-Cache-up-to-3_60-GHz). But I can't find the video memory frequency in listed URL. Do you know where can I got the info??
Hi Medwin, Sorry for the confusion. The manual does not explain the concept properly. In general, here is what we are trying to say for decode and encode case:
- When using HW implementation, we recommend using video memory instead of system memory. Video memory sits in GPU, and system memory is in CPU space. So, using HW impl with system memory would mean data copies CPU <->GPU - very inefficient. So, we recommend allocating video surfaces instead of system surfaces when using HW implementation.
If you still go ahead and use system surfaces instead of video, MSDK will manage the data copies implicitly for you. You do not have to manage it. But still, inefficient as compared to using video surfaces.
The sections 3.2 and 4.2 are confusing. But this is the point they both are trying to make - use video surfaces for efficiency and performance.
- Both system and video memory use the DRAM to read/write pages. So the frequency would be the same. Video memory is GPU opening the pages in DRAM, while system memory is CPU doing that.
Hope this helps.
Many thanks for your clarification. And I still have question as below.
Q1. As listed in http://ark.intel.com/products/75044/Intel-Core-i5-4570S-Processor-6M-Cache-up-to-3_60-GHz, why the Graphics Video Max Memory is 1.7GB for my core? hardware design? Does it mean I only can use 1.7GB even I use very large DRAM.
Q2. What're the factors that will influence "Graphics Video Max Memory" ??
After looking the article https://software.intel.com/en-us/forums/opencl/topic/559285 , The limitation of 1.7GB is graphic driver limit with the OS, Is there any way that I can confirm the limitation concurrently?? And Can I change the limitation??
Hi Medwin, I think no this limitation on Linux. You can write a sample test program to test how many surface (video memory) can you allocate ?
Then calculate how many video memory has been allocate totally ?
Thanks for your reply.
I think no this limitation on Linux,
> after looking the field of DVMT in https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units, It looks like there's still hardware limit in SOC. Right??
after referring to http://www.intel.com/support/graphics/sb/CS-029090.htm, I found that there's a setting about video memory and the value ranges 64/128/256/512 MB. It looks like PC manufacturer restrict that. Right??
I check /var/log/Xorg.0.log and found the default value 256MB(268435456) was used, As I try to modify from 256MB to 512MB in BIOS, the value seems unchanged, did you know why?? The Intel driver restrict this ??
[1559783.358] (II) xfree86: Adding drm device (/dev/dri/card0)
[1559783.359] (--) PCI:*(0:0:2:0) 8086:0412:8086:2010 rev 6, Mem @ 0xf7800000/4194304, 0xe0000000/268435456, I/O @ 0x0000f000/64
About Intel graphic driver on Linux, there are kernel mode driver (KMD) and user mode driver (UMD), UMD including 2D (X11), Media (MSDK use iHD_drv_video.so), 3D (OpenGL) etc.
You are talking should be 2D driver, 2D driver is open source and focus on display, render.
DVMT (UMA) mode, memory pre-allocated for frame buffer.
kernel will read DVMT information from BIOS during startup, and maybe do some change.
Maybe you can go to https://01.org/linuxgraphics/forum to get more details. And 2D driver can be found at http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/