All "System Requirements" figures given by anyone, anywhere, in the entire course of history of computing, are estimates.
System. Requirements. Are. Estimates. This is a fact; it is not to be debated.
By virtue of the fact that system requirements are estimates, it is possible, in many cases, to engineer systems (combinations of software and hardware) such that:
- Systems which do not meet the "minimum" requirements nevertheless work correctly; OR
- Systems which are better than or exceed the "recommended" requirements nevertheless do not work correctly.
The question becomes, do you have environmental conditions (exceptionally unusual hardware or software configuration) that would push your use case outside the bounds of the normal measures upon which the system requirements estimates are based?
Your original question did not provide nearly enough detail to answer this question, but now that you have edited it several times and provided many comments, it appears that your use case may be just special enough that the answer might be "yes", and that you might be able to get away with 512 MB of RAM.
Without the specific detail that you provided in your many comments and edits, there is a general wisdom that applies to typical users that I normally share with people, to be on the safe side, and avoid providing people bad advice and then have them come back and say "you said it will work, but it doesn't!!!!111oneoneone":
Since Nvidia themselves say that you require a minimum of 1 GB of system RAM to use their card, I think it is irresponsible and unadvisable for anyone in the community here to give you any advice other than this:
If the hardware vendor says you need 1 GB, you need 1 GB. Period. End of story.
This "general wisdom", of course, is targeted at ordinary users who are probably going to install an operating system like Windows 7 or Ubuntu 13.10 or Mac OS X Mavericks, operating systems with a very significant RAM footprint of their own, to say nothing of the Nvidia graphics driver's requirements. But like all estimates, it is based on assumptions, which may not necessarily hold true for you.
The reason that Nvidia specced out 1 GB is probably because they assume you're going to install their proprietary graphics driver (which is also required for GPGPU, I'll add), which has a significant footprint due to its extreme complexity. There's the control panel app, the kernel-side driver, the userspace driver, the integration with the operating system, and the driver even allocates a nontrivial amount of space within each user process that requests GPU capabilities. This applies not only to "graphical" programs, but also to anything else that uses the GPU (OpenCL, CUDA, DirectCompute, etc.) because GPU commands are queued and then batch buffer submitted to the GPU. Queueing up the commands (and the associated data) requires a non-zero amount of RAM to store the commands while they are being queued.
Of course, if you treat the card like a standard VGA "dumb" card with no GPU capabilities whatsoever, I'm sure you can use that aspect of the card without 1 GB of RAM. But what the box is really saying is that to take advantage of the proprietary Nvidia graphics stack on a typical operating system with a typical program load, you're going to need that much RAM at a minimum.
Minimum means that using less than that will probably result in system instability, or it just won't work at all, based on the assumptions that Nvidia has made when estimating the system requirements (again, typical OS, typical program load).
You might be able to goad someone here into telling you that you might be able to get by with less, but unless someone has actually tested this specific graphics card with exactly 512 MB of RAM using the exact operating system and userspace program load that you intend to use and has found that it works fine, I wouldn't believe them.
Considering that modern operating systems often won't even install unless you have 1 GB of RAM, and that any system that was originally configured with 512 MB of RAM is most likely so old that it can't even slot a PCI-E 2.0 card, the possibility of you building a working configuration with this extremely low amount of RAM and this GPU is vanishingly small, unless:
- You install an absolute barebones operating system;
- You are running GPGPU workloads with a very specific workload that does not require a high sustained CPU-to-GPU throughput or a very large dataset (which would ideally be stored in (lots of) RAM and not on disk or the network);
- You are using a significantly low-end GPU that its essential performance is so poor that it would not benefit significantly from having a full-width PCI-E 2.0 x16 slot connected to a dedicated point-to-point system bus to the CPU;
- The programs you write (or download and install) that use the GPU are not coded in a way as to allocate very large buffers of data when interacting with the GPU, nor do they cause the Nvidia graphics driver to allocate such large buffers;
- The results of the computations done on the GPU can be efficiently processed down to a much smaller data set (by the CPU), which can then be transported out of the embedded system over a high-speed ethernet uplink.
If your workload does not satisfy these conditions, then it's really a losing proposition.
(A bit of a digression)
OK, but it seems like you are super interested in GPGPU on small embedded devices. I think you're on to something here, but you're definitely not going to accomplish any significant work using Arduino or Raspberry Pi in their current iterations. Here's what I could see happening:
- More modern quad core (or better) ARM chips are released with 64-bit support (ARM64).
- Nvidia driver starts to support ARM64 on GNU/Linux.
- Embedded ARM SoCs become available with 4 GB of LP-DDR3 RAM or more, and access to fast flash storage and a full-width PCI-E slot.
From this hardware platform (which is far removed from what you proposed in your OP), I could see GPGPU being marginally viable on these systems, although in this configuration, you will probably be "starving" the GPU (not 100% utilizing it) still, due to the performance of system memory and the system bus being the limiting factor, such that it would be much more cost effective to buy fewer, higher-end systems based on x86-64 with a faster platform.
Compare these hypothetical specs:
ARM64 Cortex-A57 quad core @ ~2GHz w/ ??? FSB (ARM interconnect IP?)
4 GB LP-DDR3 RAM
128 GB mSATA SSD
GeForce GTX TITAN (or Tesla)
Core i7-4770K (or Xeon equivalent) w/ DMI 2.0 (20 Gb/s link between CPU and PCH)
32 GB DDR3-1600
128 GB 2.5" SATA 6 Gb/s SSD
The question becomes how many ARM systems you would need to match the performance of the x86-64 system. In all likelihood, the sheer number of ARM systems you'd need for equivalent performance would tip the performance-per-watt scales in favor of the x86-64 system. This is because you need a separate PSU, separate motherboard, separate ethernet controller, separate RAM chips, etc. for each ARM logical unit, whereas with the x86-64 system, you only need one centralized platform controller hub with a very high throughput and still very efficient TDP (often around 65W for the CPU). The wider buses and point to point interconnects means that the GPU is only going to starve if your code is inefficient, but it should be fairly easy to write code that completely utilizes the GPU.