Announcement

Collapse
No announcement yet.

AMD Linux Graphics Driver Seeing More Patches Around Multi-XCC Support

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • AMD Linux Graphics Driver Seeing More Patches Around Multi-XCC Support

    Phoronix: AMD Linux Graphics Driver Seeing More Patches Around Multi-XCC Support

    The AMDGPU kernel driver patch flow has ticked up in recent days with working on new hardware support/features...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    As I am not familiar with XCC programming and Multi-XCC (and quick google didn't lead to anything obvious) - Can someone give a quick rundown on what it is used for?

    Comment


    • #3
      Originally posted by boxie View Post
      As I am not familiar with XCC programming and Multi-XCC (and quick google didn't lead to anything obvious) - Can someone give a quick rundown on what it is used for?
      XCC is deliberately analogous to GCC and imitates many of its behaviours. XCC is a wrapper around a collection of tools to make the use of those tools simpler. Those tools perform the steps of preprocessing, compilation (both C/C++ and XC), assembly and ‘mapping’. Those tools may be used individually, but are more easily used via xcc.

      XCC will normally run all of the steps. The first three steps are similar to GCC in that they are applied to an individual source file to produce an object file. The ‘mapping’ step, as the name suggests, is different. Rather than producing an executable for a single processor, the linker is invoked multiple times to produce an executable per processor. Furthermore, the process includes auto-generating source code, compiling it and invoking the linker further times. The resulting single output file is an XE file , which contains the multiple executables.


      If I understand it right, it's another type of linker. That is if it's even the XCC terminology context the article is talking about.

      Comment


      • #4
        Originally posted by boxie View Post
        As I am not familiar with XCC programming and Multi-XCC (and quick google didn't lead to anything obvious) - Can someone give a quick rundown on what it is used for?
        I found something about XCC in a Saphire Rapids article (https://www.hardwareluxx.de/index.ph...leunigern.html, German) which interpretes this as "Extreme Core Count". But that doesn't make much sense with the "multi" prefix.

        Another thing I found is a Lenovo article mentioning an "XClarity Controller" as a new server management-controller replacing Baseboard Management Controller (BMC) (https://sysmgt.lenovofiles.com/help/...s.management.x cc.amd.doc%2Fdw1lm_c_ch1_introduction.html).​ That could lead in the right direction, but none of the patches mention Lenovo, so it's probably not it.

        Michael refers to it as "This all appears to be as part of their multiple graphics chiplets/tiles handling."

        Comment


        • #5
          Interesting Sleuthing

          Originally posted by baka0815 View Post
          I found something about XCC in a Saphire Rapids article (https://www.hardwareluxx.de/index.ph...leunigern.html, German) which interpretes this as "Extreme Core Count". But that doesn't make much sense with the "multi" prefix.
          Nor with it being in the AMDGPU section of the kernel

          Originally posted by baka0815 View Post
          Another thing I found is a Lenovo article mentioning an "XClarity Controller" as a new server management-controller replacing Baseboard Management Controller (BMC) (https://sysmgt.lenovofiles.com/help/...s.management.x cc.amd.doc%2Fdw1lm_c_ch1_introduction.html).​ That could lead in the right direction, but none of the patches mention Lenovo, so it's probably not it.
          Again, BMC would not need to program a GPU via the kernels AMDGPU driver

          Originally posted by baka0815 View Post
          Michael refers to it as "This all appears to be as part of their multiple graphics chiplets/tiles handling."
          The best interpretation I have (and I might be totally wrong) is it is a programming model for HPC. I think Sethox might be on the right track here with that set of programming tools that makes it easy to run code over several nodes.

          Comment


          • #6
            I'm pretty sure XCC is an internal codename AMD is using for something in its GPUs. As Michael has documented, they've switched over from using model names to unit names, in their enablement. As such, it's anyone's guess what it really means.

            The first letter is probably short for:
            • eXtensible
            • eXternal
            • eXtreme
            • cross

            The second letter might mean:
            • Cache
            • Compute
            • Communication
            • Cross
            • Coherency

            The last letter could represent:
            • Controller
            • Complex
            • Cache

            Because it's referring to adding support for multiple of these, we have to consider that it's probably something that make sense (and might already exist) in singular form. Initially, I'd have put my money on eXtensible Cache Controller, but with low confidence. Upon glancing at one of the patches, I'm now leaning towards something like eXtreme Compute Complex, since this bit of queue setup suggests the xcc_id is an index over XCD's (where I presume the D -> Die):
            Code:
            for (xcc_id = 0; xcc_id < adev->gfx.num_xcd; xcc_id++)
            There's also many mentions of "rings", which I presume refers to the communication bus topology. So, it might indeed refer to a communication block that's simply instantiated once per compute die.

            Comment


            • #7
              Isn't AMD using a "chiplet" structure, based on using multiple dies and die technologies to create a product, strategy on both its CPUs and GPUs? Wouldn't this be describing the different function units on the GPUs, possibly made with varying die techs to reduce cost? That is why they are able to bring up different parts of the chiplets at a time.

              It is very cool tech and ideas, frankly.

              Comment


              • #8
                Originally posted by dragorth View Post
                Isn't AMD using a "chiplet" structure, based on using multiple dies and die technologies to create a product, strategy on both its CPUs and GPUs? Wouldn't this be describing the different function units on the GPUs, possibly made with varying die techs to reduce cost?
                This has some detail, including photos which appear to show a lot more than the claimed "13 chiplets" (I count 20 distinct dies):

                Originally posted by dragorth View Post
                That is why they are able to bring up different parts of the chiplets at a time.
                As Michael has reported, their bring-up has transitioned to the granularity of logical IP blocks for a little while, already. So, things like the video codec block. It's much finer than at the granularity of whole dies.

                Comment

                Working...
                X