将GPU连接到Raspberry Pi


15

我想将GPU GT640连接到Raspberry pi模型B。我知道没有直接连接,但是传输数据却大不相同。是否有机会连接此设备以利用GPU处理能力?不必进行实时通信,但是理论上可行吗?


我计划使用MCS9990(PCIe至4端口USB 2.0主机控制器)来制作将GT640 PCI 3.0 16x与RPi USB 2.0连接的板。我认为唯一的困难是该芯片的驱动程序,但我有时间来开发它。如果我实现了此功能,那么其​​他软件(CUDA和GForce驱动程序)又可以在板卡驱动程序之上运行呢?
Arturo Veras 2014年

我找到了可以完成此工作的界面。它是PCI Express Gen 2至USB 3.0外围控制器。它具有一个PCI Express Gen 2 x1端口和一个USB 3.0 SuperSpeed客户端端口。我知道USB 3.0还支持USB 2.0:+ USB高速(USB 2.0480 Mbit / s + USB超高速(USB 3.05 Gbit / s +外部PCI Express 2.0×1 4 Gbit / s +外部PCI Express 3.0 ×16 32Gbit / s 我将受到USB 2.0 Raspberry pi端口的限制。
Arturo Veras 2014年

3
然后我严重建议您避免尝试这样做
nagyben 2014年

编程驱动程序非常困难,尤其是当它从未做过时
nagyben 2014年

Raspberry Pi的主处理器已经是基于VideoCore IV的GPU。
Erkin AlpGüney17年

Answers:


3

几乎是不可能的。

您最好尝试使用便宜的PC盒,因为油炸GT640和/或Raspberry Pi的风险很高。


为什么Almos不可能?我正在考虑使用PCIe到MCS9901CV-CC之类的USB适配器芯片组,我想尝试相反的方法。
Arturo Veras 2014年

@ArturoVeras,因为不应将这些设备连接和/或一起使用。更不用说缺少必须编写的驱动程序和软件了,其性能将非常糟糕,从而使整个工作陷入困境。
lenik

也许我错过了重点。如果我错了,请纠正我,我的想法是将树莓(以某种方式)连接到GPU。稍后,我们可以对此进行群集,并具有更多的处理能力。这个想法不是利用传输PCIe速度,而是利用GPU的千核。因此,如果我可以使用GPIO oa芯片(如MCS9901CV)进行通信,那将是很棒的事情,因为这意味着我可以添加更多的Raspberry pi并进行群集和瞧!
Arturo Veras 2014年

1
@ArturoVeras您是否设法将一些更简单的处理器连接到RaspPi GPIO并与其进行合理通信?我同意lenik的观点,这是一项极其艰巨的任务(首先研究PCIe架构和GPU通信),并且收益很小。也许作为练习,首先尝试与直接连接到PC中PCIe总线的GPU通信。
ssavec 2014年

不,我不知道。我正在研究PCIe协议,看看是否可以与Raspberry pi GPIO进行通信。您对使用PE4L-PM060A的想法是,PCIe至mPCIe适配器。我注意到PCI 1x接口只会减少PC1 16x带宽,我不介意。这种事情可以为我提供帮助,因为我可以使用具有mPCIe接口的开发板。
Arturo Veras 2014年

3

有可能,但是请注意,您将需要编写自己的驱动程序并解决电源问题,因为我怀疑RasPi能否自行提供完整的PCI / PCI-E GPU。另外请记住,CPU也会影响GPU的性能,因此在尝试之前进行研究可能是一个主意。<---此外,您可以使用1x到16x的gpu采矿设备中常用的有源立管电缆。还有其他带电源的提升电缆,它们也将适配卡用于USB。


目前,这是我关心的问题,电源问题。如果我想为GPU使用外部电源,我会想到哪些问题?
Arturo Veras 2014年

1

您可以使用具有PCI Express x1卡插槽的startKIT,该插槽可用于连接到合适的GPU(您可能必须编写自己的驱动程序),然后可以通过GPIO头与Pi进行接口。

简而言之:是的,您可以做到的所有硬件都存在并且容易获得,您所要做的就是编写粘贴逻辑,但是不要指望它很容易。


也许使用MCS9901将GPIO连接到PCIe?
Arturo Veras 2014年

startKIT仅在PCIe和de RPi之间添加了硬件接口?您提到的驱动程序必须写在startKit或RPi中吗?对驱动程序进行编程有什么困难?
Arturo Veras 2014年

可能很困难。我实际上不确定这是否可行,但是从理论上讲,使用startKIT,您将具有所需的硬件和环境来执行您想要的操作。

1
您如何看待USB 2380。看来这是解决方案,唯一的问题是GT640是16x PCIe,USB 2380是1x PCIe,但是我认为这根本不是问题。
Arturo Veras 2014年

@ArturoVeras很难说,无法访问产品详细信息,但似乎仍然应该有可能,但愿它会很困难。同样,如果将Pi作为主机,您可能也无法充分利用卡的功能。

1

因此,要唤醒死线程,我个人不会在Raspberry Pi上这样做。我建议至少使用带有mPCIe至PCIe适配器的Pi 3,该适配器专为台式机GPU设计并由专用电源供电。另外,您还需要确保Linux版本对此具有驱动程序支持。如果没有驱动程序,则必须由他人编写,而使用正确的资产和源代码可能要花费数月的时间。这样做的可能性是100%,但是您可能必须有足够的才能为社区编写它(如果尚未完成)。


当然,NVidia发行的所有Linux驱动程序都将针对类似PC的硬件-我不敢相信OP能够使数据吞吐量做任何有用的事情,甚至可以代替FPS(每秒帧)假设他可以得到任何有用的显示输出,我敢打赌,它将以FPM或PFH来衡量!8
SlySven 2016年

此外,NVidia仅分发封闭的二进制文件,而不分发开放源代码驱动程序(以同样的方式,我们只获得RPi上用于操作GPU的二进制blob),这使开发驱动程序变得更加困难,甚至不是不可能。 。
SlySven

这也是事实,应予以考虑。您应该珍惜pi 3的任何可反向工程师的代码。可能需要一支道德的黑客团队或一些公司来共同创建解决方案。无论哪种感觉,看到它都会很有趣,也很有趣。
Robschwab1年

0

您面临的另一个问题是,由于时钟频率仅为700 MHz,因此CPU会成为图形卡的瓶颈。我会用便宜得多的GT 210尝试一下(您可以花20至30美元买到)。关于驱动程序,您可以找到开源的Nvidia驱动程序并在ARM上进行编译。


具体问题是什么?我只需要从GPU进行一些计算,就不需要实时应用。
Arturo Veras 2014年

那这张卡呢?SBC-A510单板计算机。它具有800 MHz CPU,并带有一个PCIe 1x插槽。
Arturo Veras 2014年

0

只是碰到一个旧线程。这几乎是不可能的,但是主要原因是资本主义和官僚主义,而不是写司机。

当然,编写驱动程序非常困难,但是需要与史诗般的团队合作,并且要在日出之前完成。

更难的是访问整个视频卡的现有源代码,甚至可能访问BCM2835,BCM2836或BCM2837(分别为Pi 1、2和3)的源代码。您需要那些工具来学习卡在内部的工作方式,并找到一种相互连接的方法。

您将必须是OEM,才能获得获得源代码的机会。即使是树莓派基金会本身 必须有困难与并有一个预编译的二进制大对象与处理器和GPU接口结算。

电力需求根本不是问题,因为当您乞求[公司名称]时,您已经知道了。可能是PC PSU连接到视频卡,并且还通过其5V导轨为Pi供电。



-1

您唯一的问题将是驱动程序。让Nvidia GPU在Pi上运行非常酷,但这几乎与从头开始构建自己的GPU一样困难。

人们是对的,硬件不是不可能的,但它会很粗略。但是,您绝对需要驱动程序。即使您可以自己编写,也不会对其进行优化以充分利用GPU的速度和功能。

我想用旧的Nvidia GForce尝试一下,但是我是一个糟糕的程序员,没有硬件黑客经验。

我认为这是一个遥不可及的过程,但是我在RTX发布之后就通过电子邮件发送给NVidia,询问他们是否可以为Pi编译一些2010年之前的GPU的驱动程序,并使其可供下载和修补,或者发布。供人们自行编译的源代码。显然他们说“不”。

事情就是这样,我们有用于笔记本电脑的外部GPU(不计成本),而新的Pi 3B +中的Wi-Fi应该是快速的,为什么不看这是否可行?


我不确定这是一个答案还是一个建议,尽管它是有用的。
Greenonline '18 -10-31

@ Greenonline这本来是一个建议和一个请求(请重读最后一句话)
洛克希德·
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.