I would not go with a gpu with ddr3 ram, choose a ddr5.
Unless the price difference is huge, I would go with a 660m. The difference between them is that the 660m is higher binned. What this means is that in internal benchmarking, they put stress tests on each of the chips to see how high their stable voltage and frequency are. Manufacturing gpus is very inconsistent so you end up with chips that are absolutely useless and chips that are godly. They will sell off the better chips with higher stock settings as a 660m because they are able to function at those settings. The lesser chips are 650m and then 640m. So if you try to overclock a 640m, you can probably squeeze a bit more out of it, but doing so may push it past stability, and it will void the warranty.