About Multi-GPU Configuration

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

About Multi-GPU Configuration

1,204 Views
GordonXu
Contributor I

About Multi-GPU Configuration, I found some descriptions,
<i.MX 8QuadMax Applications Processor Reference Manual> Section 16.1.1.1 GPU,
Since the GPU sub-systems are identical, the GPU cores have the ability to hookup to one another and form a single graphics engine. At start-up, the choice can be made to enable the GPUs to act as a single engine (one 16 shader GPU) or work independently (two 8 shader GPUs).

<i.MX Graphics User's Guide> Section 8.2 Multi-GPU configurations,
Vivante Multi-GPU IP may be configured into one of the following behavior model through software:
• Combined Mode where two (or more) GPU cores in the multi-GPU design behave in concert. Driver presents multi-GPU to SW application as a single logical GPU. The multiple GPUs work in the same virtual address space and share the same MMU page table. The multiple GPUs fetch and execute a shared Command Buffer.
• Independent Mode where each GPU in the multi-GPU design performs independently. The multiple GPUs work in different virtual address spaces but share the same MMU page table. Each GPU core fetches and executes its own Command Buffer. This enables different SW applications to run simultaneously on different GPU cores.

Both documents says multi-GPU can be configured to Combined Mode or Independent Mode. But I haven’t found any description about how to configured it.

<i.MX Graphics User's Guide> Section 8.3 describes “VIV_MGPU_AFFINITY is the environment variable to control the application GPU affinity on multi-GPU platform.” And I am very confused where to set this environment variable, in build environment, in u-boot or Linux runtime environment? And how does this environment variable get work?

Tags (1)
0 Kudos
4 Replies

1,176 Views
GordonXu
Contributor I

Thanks! 

According to IMX_GPRPHICS_USERS_GUIDE, the environment variable VIV_MGPU_AFFINITY effects when  GPUs in Independent Mode, so how to configure GPUs to Independent Mode or Combined Mode?

Regards

0 Kudos

1,199 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello GordonXu,

Could you attach imx8qm reference manual?  I cannot find the section you mentioned from the one I got .Thanks.

VIV_MGPU_AFFINITY is used in the GPU commands to use single GPU or bridged GPU, you can choose gpus in user space before running any applications.

Default - bridged(both gpu are used)

export VIV_MGPU_AFFINITY="0:0"

 

GPU-0

export VIV_MGPU_AFFINITY="1:0"    

 

GPU-1

export VIV_MGPU_AFFINITY="1:1"    

 

Regards

0 Kudos

1,195 Views
GordonXu
Contributor I

Hi Bio,

Thanks for your reply!

The maximum size of attach is 25 MB but IMX8QMRM is about 65MB.

It could be found on NXP website.

i.MX 8QuadMax Applications Processor Reference Manual Rev 0 Sep 16, 2021
Document Number: IMX8QMRM, Rev. 0, 9/2021
page 9299

How does VIV_MGPU_AFFINITY get effect? I mean who read this environment variable and do the application GPU affinity?

Regards

 

0 Kudos

1,190 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

gpu driver read this variable and gpu will do this affinity

Regards

0 Kudos