Answers.Body: <p>XPU is a device abstraction for Intel heterogeneous computation architectures, which can be mapped to CPU, GPU, FPGA and other accelerators. The &quot;X&quot; from XPU is just like a variable, like in maths, so you can do X=C and you get CPU accceleration, or X=G and you get GPU acceleration... That's the intuition behind that abstract name.</p>
  <p>In order to integrate a new accelerator you need 2 things:</p>
  <ul>
  <li>HW support: read about XPU in the official <a href="https://www.intel.com/content/www/us/en/architecture-and-technology/xpu.html" rel="noreferrer">intel XPU webpage</a>.</li>
  <li>SW support: see this <a href="https://github.com/pytorch/pytorch/issues/48246" rel="noreferrer">open Feature Request</a> to include this kind of architecture to the pytorch pool of HW accelerators</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-07-23T08:20:13.890Z
Answers.LastActivityDate: 2021-07-28T08:09:33.670Z
Answers.LastEditDate: 2021-07-28T08:09:33.670Z
Answers.UserDisplayName: JVGD
Body: <p>I know about CPU, GPU and TPU. But, it is the first time for me to read about XPU from <a href="https://pytorch.org/docs/stable/generated/torch.nn.Module.html" rel="noreferrer">PyTorch documentation about MODULE</a>.</p>
  <pre><code>xpu(device=None)
  
  
  Moves all model parameters and buffers to the XPU.
  
  This also makes associated parameters and buffers different objects. So it should be called before constructing optimizer if the module will live on XPU while being optimized.
  
  Note: This method modifies the module in-place.
  
  Parameters
  
      device (int, optional) – if specified, all parameters will be copied to that device
  
  Returns
  
      self
  
  Return type
  
      Module
  </code></pre>
  <p>CPU stands for Central Processing Unit.
  GPU stands for Graphical Processing Unit.
  TPU stands for Tensor Processing Unit.</p>
  <p>Most of us know that these processing units are highly useful in the research of some computational intensive domains of AI including deep learning. So, I am wondering whether <code>XPU</code> is also useful in AI research since it is used in PyTorch.</p>
  <p>From the context, I can say that <code>PU</code> stands for <code>processing unit</code>. But I have no idea of what <code>X</code> is.</p>
  <p>What is the full form for XPU? Where can I read about XPU in detail?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-07-21T16:36:11.713Z
Comments.Text: This blog post by Intel seems to be explaining it: https://medium.com/intel-tech/the-evolution-of-xpu-and-the-critical-role-of-software-c46970dfcbe9
Comments.UserDisplayName: SpiderRico
Tags: <terminology><pytorch><implementation><resource-request><hardware>
Title: What exactly is an XPU?
UserDisplayName: hanugm
ThreadText: # What exactly is an XPU?
  
  (Asked by: username_0 on 2021-07-20)
  
  I know about CPU, GPU and TPU. But, it is the first time for me to read about XPU from [PyTorch documentation about MODULE](https://pytorch.org/docs/stable/generated/torch.nn.Module.html).
  
  ```
  xpu(device=None)
  
  Moves all model parameters and buffers to the XPU.
  
  This also makes associated parameters and buffers different objects. So it should be called before constructing optimizer if the module will live on XPU while being optimized.
  
  Note: This method modifies the module in-place.
  
  Parameters
  
      device (int, optional) – if specified, all parameters will be copied to that device
  
  Returns
  
      self
  
  Return type
  
      Module
  
  ```
  
  CPU stands for Central Processing Unit.
  GPU stands for Graphical Processing Unit.
  TPU stands for Tensor Processing Unit.
  
  Most of us know that these processing units are highly useful in the research of some computational intensive domains of AI including deep learning. So, I am wondering whether `XPU` is also useful in AI research since it is used in PyTorch.
  
  From the context, I can say that `PU` stands for `processing unit`. But I have no idea of what `X` is.
  
  What is the full form for XPU? Where can I read about XPU in detail?
  
  **Tags:** terminology, pytorch, implementation, resource-request, hardware
  
  > **Comments:**
  > **username_1**: This blog post by Intel seems to be explaining it: https://medium.com/intel-tech/the-evolution-of-xpu-and-the-critical-role-of-software-c46970dfcbe9  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2021-07-23. Score: 9 | Accepted answer
  
  XPU is a device abstraction for Intel heterogeneous computation architectures, which can be mapped to CPU, GPU, FPGA and other accelerators. The "X" from XPU is just like a variable, like in maths, so you can do X=C and you get CPU accceleration, or X=G and you get GPU acceleration... That's the intuition behind that abstract name.
  
  In order to integrate a new accelerator you need 2 things:
  
  * HW support: read about XPU in the official [intel XPU webpage](https://www.intel.com/content/www/us/en/architecture-and-technology/xpu.html).
  * SW support: see this [open Feature Request](https://github.com/pytorch/pytorch/issues/48246) to include this kind of architecture to the pytorch pool of HW accelerators
  
  
  ---
  
  