0

I have a Nvidia GT640 with 2GB memory and it requirements says that my computer must have at least 1 GB RAM. My computer can't have the enough needed ram (Could be a Raspberry Pi, CubieBoard, 86 Duino One... Let's say I have max 512 MB RAM). **The purpose of this "environment" is (for example) to send data to the gpu, calculate no matter what time takes that and deliver back the results, nothing else, no graphic display.

So, the question is if may the graphic card work for this purpose without the recommended 1 GB RAM?

System Requirements for this card:

  • PCI Express or PCI Express 2.0 - compliant motherboard with one.
  • Dual-width x16 graphics slot. Minimum 200MB of available hard disk.
  • Space Minimum 1GB system memory is required (2GB recommended).
  • CD-ROM/DVD_ROM for driver installation.

Not for gamming.

1
  • There is no way we can say for sure that this will work, so this question cannot be answered. You will have to just try it and find out. Jan 30, 2014 at 18:57

3 Answers 3

5

The 1 GB requirement is the absolute minimum required to be able to run Windows Vista (or later) and the NVidia drivers.
(Even with 1 GB the system will be unbearably slow. 2 GB will be just about usable.)

If you don't use Windows it will work with 512 M.

I have done this with a Geforce 660GT myself. I used a very small low-memory footprint Linux distro (Damn Small Linux) to experiment a little with GPU based processing tools.
I would NEVER consider this for any serious work. It is just too limiting.

The performance of the card will be limited as the working-room to transfer data between system RAM and the video-card is limited to very small buffers.

Why on earth you would limit yourself to such a ridiculous low amount of system RAM is another thing.
4 GB is already more or less standard for a low-end, low-memory computer these days.

1
  • Thanks for your answer. The goal is to use something like Damn Small linux with a limited environment like the plataforms mentioned. Jan 30, 2014 at 16:39
4

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:

GeForce GT640
ARM64 Cortex-A57 quad core @ ~2GHz w/ ??? FSB (ARM interconnect IP?)
4 GB LP-DDR3 RAM
128 GB mSATA SSD

vs.

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.

1
  • A few minor mistakes in there. Raspberry Pi actually has high GPGPU performance per watt, but only Broadcom engineers have the development tools for building for the VideoCore; it doesn't support OpenCL or CUDA. And arrays of SoCs don't use a separate PSU for each element.
    – Ben Voigt
    Jan 30, 2014 at 18:08
1

Your question is "will it work"

It depends on what exact type of HPC work you are doing but likely yes.

For comparison, I have 2 ATI 5850's which have similar system requirements.

My cards are bitcoin mining on a core duo with 512 MB of ram without problems.

Contrary to what the other answer say that it won't work, or that you will see swapping, I'll tell you that you can run that card on less than 1GB of ram.

5
  • You have to keep in mind that something like cryptocurrency mining (or hashing in general) is a very specific task for GPGPU, and doesn't process that much data/doesn't have the amount of data transfer involved in most other tasks. Also, a GT640 would be absolutely terrible for cryptocurrency mining. Yes, you could probably get it to run - but without problems? Unlikely.
    – Bob
    Jan 30, 2014 at 16:44
  • 1
    But it proves the point that you can run a video card that has a system requirement of 1gb on less than that without problem. Which is the original question.
    – spuder
    Jan 30, 2014 at 16:47
  • It's pointless to debate about this unless the OP gives us a specific use case of exactly what type of GPGPU he'll be doing. In the sense of "will it execute without crashing", you're probably right that it will, except in some cases where you're dealing with very large datasets that make the system go OOM (but even then you could have 2 TB of SSD swap and argue that it would still work, so whatever). Point being, it's unlikely to work well, unless the OP is specifically doing bitcoin mining. Without more detail, the answer can't be decided, so I'm voting to close the question. Jan 30, 2014 at 16:55
  • 1
    @allquixotic You are missing the question. The card will run with less than 1GB of ram without swapping, end of story. The question says nothing about datasets, he just wants to know if it will run. No need to get defensive.
    – spuder
    Jan 30, 2014 at 17:02
  • @allquixotic Spuder got the point. I edited the question to reflect what I want to do with this configuration. Jan 30, 2014 at 17:30

Not the answer you're looking for? Browse other questions tagged .