Is it possible to wire a graphics card to act as a PCIe host controller? I mean, assuming the firmware is also rewritten, is there anything in terms of hardware (EE) that prevents me from using a GPU to control a PCIe bridge as a host device?
More specifically - what hardware components are missing between a PCIE graphics card and a PCIE bridge, to allow the GPU to act as a PCIE host? What signals or bits are hardwired (ie burned to a chip) on graphics cards, that identify them as client devices on a PCIE bus, rather than a host?
Essentially, a single CPU core is different from a single GPU core by the implemented instructions and addresses. My understanding, is that, a CPU as we think of them today, is more than just a processor - it's more a SoC with some peripheral components that make it capable of communicating over the PCIE bus alone. For instance, communication over a PCIE bus is not a common feature of arm chips.
Perhaps a simpler version of the question, is "What do I need to implement between an arduino, which uses an arm processor, to make is a PCIE host?" I believe the answer to this question would be halfway to using a graphics card as a host.