任何人,无论在任何地方,在整个计算历史过程中给出的所有 “系统要求”数字都是估计值。
系统。要求。是。估计。这是事实; 这是不值得辩论的。
由于系统要求是估计的事实,在许多情况下,可以设计系统(软件和硬件的组合),以便:
- 不符合“最低”要求的系统仍能正常工作; 要么
- 但是,优于或超过“推荐”要求的系统无法正常工作。
问题是,您是否有环境条件(异常不寻常的硬件或软件配置)会使您的用例超出系统要求估算所依据的正常措施的范围?
你的原始问题没有提供足够的细节来回答这个问题,但是现在你已经多次编辑并提供了很多评论,看来你的用例可能只是特别的,答案可能是“是”,那个你可能能够使用512 MB的RAM。
如果没有您在许多评论和编辑中提供的具体细节,一般的智慧适用于我通常与人分享的典型用户,为了安全起见,并避免向人们提供不良建议然后让他们回来并说“你说它会起作用,但它不会!!!! 111oneoneone”:
由于Nvidia的自己说,你需要一个至少 1 GB大小的系统内存使用他们的卡,我认为这是不负责任和不妥当的人在这里的社区给你除此之外的任何意见:
如果硬件供应商说您需要1 GB,则需要1 GB。期。故事结局。
当然,这种“普遍的智慧”针对的是普通用户,他们可能会安装像Windows 7或Ubuntu 13.10或Mac OS X Mavericks这样的操作系统,这些操作系统拥有非常大的RAM占用空间,更不用说了。 Nvidia显卡驱动程序的要求。但与所有估计一样,它基于假设,这些假设可能不一定适用于您。
Nvidia推出1 GB 的原因可能是因为他们假设您将安装他们的专有图形驱动程序(这也是GPGPU所需要的,我将添加),由于其极端复杂性,它具有很大的占用空间。有控制面板应用程序,内核端驱动程序,用户空间驱动程序,与操作系统的集成,驱动程序甚至在请求GPU功能的每个用户进程中分配了大量的空间。这不仅适用于“图形”程序,也适用于使用GPU(OpenCL,CUDA,DirectCompute等)的任何其他程序,因为GPU命令排队,然后是批处理缓冲区提交给GPU。对命令(以及相关数据)进行排队需要非零量的RAM来在排队时存储命令。
当然,如果您将卡视为没有GPU功能的标准VGA“哑”卡,我相信您可以在没有1 GB RAM的情况下使用该卡的这一方面。但是这个盒子真正说的是,为了在典型的程序加载的典型操作系统上利用专有的Nvidia图形堆栈,你将需要至少需要那么多的RAM。
最小意味着使用小于该值可能会导致系统不稳定,或者它根本不会起作用,这是基于Nvidia在估计系统要求时所做的假设(同样,典型的OS,典型的程序负载)。
你可能会在这里找个人告诉你,你可以用更少的东西,但除非有人使用你想要的确切的操作系统和用户空间程序负载实际测试了这个特定的图形卡与512 MB的RAM使用并发现它工作正常,我不相信它们。
考虑到现代操作系统通常甚至不会安装,除非你有1 GB的RAM,并且任何最初配置512 MB RAM的系统很可能都很老,以至于它甚至无法插入PCI-E 2.0卡,你有可能用这么少的RAM构建一个工作配置,这个GPU很小,除非:
- 您安装绝对准系统操作系统;
- 您正在运行具有非常特定工作负载的GPGPU工作负载,该工作负载不需要高持续的CPU到GPU吞吐量或非常大的数据集(理想情况下存储在(大量)RAM中而不是存储在磁盘或网络上);
- 您使用的是一款性能极低的GPU,其基本性能非常差,以至于将全宽PCI-E 2.0 x16插槽连接到CPU的专用点对点系统总线无法从中获益。
- 您编写(或下载并安装)使用GPU的程序的编码方式不是在与GPU交互时分配非常大的数据缓冲区,也不会导致Nvidia图形驱动程序分配如此大的缓冲区;
- 在GPU上完成的计算结果可以有效地处理到更小的数据集(由CPU),然后可以通过高速以太网上行链路将其传输出嵌入式系统。
如果你的工作量不满足这些条件,那么它真的是一个失败的主张。
(有点偏离)
好的,但似乎你对小型嵌入式设备上的GPGPU非常感兴趣。我认为你在这里做的事情,但你肯定不会在他们当前的迭代中使用Arduino或Raspberry Pi完成任何重要的工作。这就是我能看到的情况:
- 更多现代四核(或更好)ARM芯片发布,支持64位(ARM64)。
- Nvidia驱动程序开始在GNU / Linux上支持ARM64。
- 嵌入式ARM SoC可提供4 GB或更多的LP-DDR3 RAM,并可访问快速闪存和全宽PCI-E插槽。
从这个硬件平台(与你在OP中提出的建议相去甚远),我可以看到GPGPU在这些系统上可行性很小,尽管在这种配置中,你可能会“匮乏”GPU(不是100%利用它)仍然,由于系统内存的性能和系统总线是限制因素,因此使用更快的平台购买基于x86-64的更少,更高端的系统将更具成本效益。
比较这些假设的规格:
GeForce GT640
ARM64 Cortex-A57四核@~2GHz w / ??? FSB(ARM互连IP?)
4 GB LP-DDR3 RAM
128 GB mSATA SSD
与
GeForce GTX TITAN(或Tesla)
Core i7-4770K(或Xeon等效版)w / DMI 2.0(CPU和PCH之间20 Gb / s链接)
32 GB DDR3-1600
128 GB 2.5“SATA 6 Gb / s SSD
问题在于您需要多少ARM系统来匹配x86-64系统的性能。在所有可能的情况下,相同性能所需的ARM系统数量绝对会使每瓦性能提升至x86-64系统。这是因为每个ARM逻辑单元需要一个单独的PSU,单独的主板,独立的以太网控制器,单独的RAM芯片等,而对于x86-64系统,您只需要一个具有极高吞吐量的集中式平台控制器集线器。仍然非常有效的TDP(CPU通常约为65W)。更宽的总线和点对点互连意味着如果您的代码效率低下,GPU只会挨饿,但编写完全利用GPU的代码应该相当容易。