So the number 2 does't exist? Infinity doesn't exist?
You seem to be greatly confused about meta-physics. Physical reality is only a tiny subset of much larger reality that scientists are generally clueless about.
I would agree a $1K GPU is largely a waste for the majority however you are missing WHY someone would even spend $1,000 on a GPU in the first place.
Namely, I recently picked up a GTX Titan for a couple of reasons:
* I run all* my games at 120 Hz** so I can use LightBoost*** on my Asus VG248QE monitor. (I don't care about triple monitor 5760x1080) * Since it is a single GPU chip I don't have to worry about microstuttering**** issues plague that ALL SLI / XFIRE cards. * It only uses 250W***** under full load * It is quiet even under full load * It supports CUDA 5 * I've been tracking GPU performance & prices since 2000. GPU cards depreciate about $100/year. I expect my Titan to last 5 to 10 years before shitty mobile & laptop GPUs catch up. For my game dev I am NOT targeting the high end BUT the LOW end. I need the lowest common denominator to significantly rise.
So before your smug comments you might actually want to TALK to a gamer and find out their _reasons_ instead of just dissing everything as some epeen -- those losers are the posers / fanbois.
/sarcasm. Right, the universe just spontaneous came into existence.
From the Laws of Thermal Dynamics we know energy can not be created nor destroyed. Einstein showed us all Matter is Energy. Therefore the Universe has ALWAYS existed in one form or another. Q.E.D.
Yeah the example has been greatly simplified as I didn't discuss locality (Basic Blocks), nor compiler tricks such as the one you mention stuffing values in to "partial" registers, nor compiler-assisted register renaming (hints the compiler can give to the CPU), thread optimization, etc. as they are extremely hardware, compiler, and application specific. It is amazing how exceedingly complex this gets so fast.
I really wish we could have cheap CPUs with 256 x 64-bit accessible registers, where
* register 0 has been hardwired to 0x00000000_00000000 = zero * register 1 has been hardwired to 0x00000000_00000001 = one * register 2 has been hardwired to 0x00000000_80000000 = signed 32-bit mask * register 3 has been hardwired to 0x80000000_00000000 = signed 64-bit mask * register 253 has been hardwired to 0x7F7F7F7F_7F7F7F7F * register 254 has been hardwired to 0x80808080_80808080 * register 255 has been hardwired to 0xFFFFFFFF_FFFFFFFF = negative 1 = not zero * and every 4 registers could be aliased in vector form: i.e. V0 refers to < R0, R1, R2, R3 > and V1 = < R4, R5, R6, R7 > , etc.
Sadly it looks likes x86_64 / AMD64 is here to stay.
I just got my Titan and was kind of surprised to see the 14 SMXes myself. Each SMX has 192 FP32 cores (12*16) which explains where the odd 2688 comes from: 14*12*16 = 14*192 = 2688.
GK110 is composed of 15 of NVIDIAâ(TM)s SMXes, each of which in turn is composed of a number of functional units. Every GK110 packs 192 FP32 CUDA cores, 64 FP64 CUDA cores, 64KB of L1 cache, 65K 32bit registers, and 16 texture units. These SMXes are in turn paired with GK110's 6 ROP partitions, each one composed of 8 ROPs, 256KB of L2 cache, and connected to a 64bit memory controller. Altogether GK110 is a massive chip, coming in at 7.1 billion transistors, occupying 551mm2 on TSMC's 28nm process
For Titan NVIDIA will be using a partially disabled GK110 GPU. Titan will have all 6 ROP partitions and the full 384bit memory bus enabled, but only 14 of the 15 SMXes will be enabled.
> Experience is great, but it's not the only factor that goes into making someone competent. True however those of us that have been here a while remember the 20-year cycle where everything is new again as everything cycles from big iron down to wimpy desktops and back again. For every "new" technology in the 90's and 2000's somebody was already doing it ~ 20 years ago. The kids these days don't remember the "silver bullets" that are always over-hyped, how Microsoft invents some 3-letter acronym for their new proprietary technology every 5 years, etc.
i.e. Infocom games -- byte code, virtual memory, etc.
But yeah, looks like we have to wait another 10 - 20 years before we start seeing "normal" desktop motherboards support more then 128 GB. The 4 or 8 DIMM sockets will be "good enough" for a long time.
> one of the presenters said that one of the most surprising speed-ups for 64-bit code came from just having 16 real general purpose registers to work with.
Yeah, this has been known for ages. The technical term is called "register spill"* in compiler land.
i.e. A compiler tries to optimize register usage by trying to reuse temporaries and minimize load/stores since memory is extremely SLOW compared to registers/L1/L2/L3.
Here's a practical example. Let's say your entire code base at run time has a maximum function depth of around 8 calls. If the average number of registers used (passed in, passed out) is 3, a CPU with 32 registers might be able to have the compiler pass all function arguments in registers instead of the slow stack. If your CPU only has 8 registers you will be spilling the majority of time seriously impeding performance.
Other optimizations involve using huffman encoding for the mnemonics. i.e. You can sort ALL the assembly instructions based on usage and THEN assign opcodes THAT value. Related is 'code density'. Initially 64-bit code wasted vastly more memory.
If one woman can have a baby in 9 months, then 9 women can have a baby in one month, right?
No.
Not every task can be run in parallel.
Now however if your data is _independent_ then you can distribute the work out to each core. Let's say you want to search 2000 objects for some matching value. On a 8-core CPU you would need 2000/8 = 250 searches. On the Titan each core could process 1 object.
There are also latency vs bandwidth issues, meaning it takes time to transfer the data from RAM to the GPU, process, and transfer the results back, but if the GPU's processing time is vastly less then the CPU, you can still have HUGE wins.
There are also SIMD / MIMD paradigms which I won't get into, but basically in layman's terms means the SIMD is able to process more data in the same amount of time.
When your problem domain & data are able to be run in parallel then GPU's totally kick a CPU's in terms of processing power AND in price. i.e. An i7 3770K costs around $330. Price/Core is $330/8 = $41.25/core A GTX Titan costs around $1000. Price/Core is $1000/2688 = $0.37/core
Remember computing is about 2 extremes:
Slow & Flexible < - - - > Fast & Rigid CPU (flexible) vs GPU (rigid)
> Can someone please explain why it is so important to have frame rates that exceed the refresh rate of the monitor?
Simple: To _guarantee_ frame rates will STAY ABOVE the refresh rate WHEN you need to have the GPU do more work.
Synopsis: The GPU does a variable amount of work each frame. You don't want your game optimized for the average case but for the WORST case. You want to guarantee a MINIMUM frame rate of (at least) 60 Hz.
i.e. If you are playing a FPS (first person shooter) at 60 fps (frames/second) locked to 60 Hz and a grenade goes off causing smoke then the GPU has more work to do for a few frames rendering all those layers of alpha-blended smoke which will drop your frame rate down to 40 fps. You will notice the game looks "choppy" or micro-lag as it drops from a steady 60 Hz below 60 Hz.
If the game is running at 90 fps, but your monitor is capping it to 60 Hz (i.e. with V-Sync), even with the grenade the framerate dropping down to 70 fps you will STILL have a SMOOTH frame rate at 60 Hz.
The instant a game drops below 60 fps it looks and feels "stuttery". Personally I prefer 100+ hz. There are even monitors which support up to 144 Hz such as the fantastic Asus VG248QE.
Playing Team Fortress 2 (or Portal 2) with ALL the graphic rendering options set to max and STILL running at 120 Hz (and 200+ fps) is sweet!
Locking the frame rate between 100 and 120 Hz allows LightBoost to work with nVidia cards and certain monitors. Lightboost is a fantastic option to get rid of the stupid "motion blur" and "ghosting" on LCD monitors so they perform like CRTs.
See this video if you want to see the difference between 120 Hz with LightBoost OFF vs ON.
> EA (the game company) created their own STL replacement basically just to add a GC and hashmaps, because they were tired of reimplementing these features IN EVERY DAMN GAME
No the _real_ reason was because STL was horribly designed and implementedin places:
However, some aspects of it make it hard to use and other aspects prevent it from performing as well as it could. Among game developers the most fundamental weakness is the std allocator design, and it is this weakness that was the largest contributing factor to the creation of EASTL. Secondarily was the lack of std STL containers designed to be memory-friendly. There are additional reasons that will be discussed below.
:
The following is a listing of some of the reasons why std STL and its current implementations are not currently ideal for game development. There are additional reasons, but the list here should hopefully convey to you some sense of the situation. Each of the items listed below deserves a document of its own, as a single sentence alone cannot fully convey the nature or significance of these items. Some of the items refer to the STL design, whereas some of the items refer to existing STL implementations. It would be best if these were discussed independently, but to many users this distinction is often of little practical significance because they have little choice but to use the standard library that comes with their compiler.
* std STL allocators are painful to work with and lead to code bloat and sub-optimal performance. This topic is addressed separately within this document. * Useful STL extensions (e.g. slist, hash_map, shared_ptr) found in some std STL implementations are not portable because they don't exist in other versions of STL or are inconsistent between STL versions (though they are present in the current C++09 draft). * The STL lacks functionality that game programmers find useful (e.g. intrusive containers) and which could be best optimized in a portable STL environment. See Appendix item 16. * Existing std STL implementations use deep function calls. This results in low performance with compilers that are weak at inlining, as is the currently prevalent open-source C++ compiler. See Appendix item 15 and Appendix item 10. * Existing STL implementations are hard to debug. For example, you typically cannot browse the contents of a std::list container with a debugger due to std::list's usage of void pointers. On the other hand, EASTL allows you to view lists without incurring a performance or memory cost. See Appendix item 2. * The STL doesn't explicitly support alignment requirements of contained objects, yet non-default alignment requirements are common in game development. A std STL allocator has no way of knowing the alignment requirements of the objects it is being asked to allocate, aside from compiler extensions. Granted, this is part of the larger problem of the C++ language providing minimal support for alignment requirements. Alignment support is proposed for C++09. * STL containers won't let you insert an entry into a container without supplying an entry to copy from. This can be inefficient in the case of elements that are expensive to construct. * The STL implementations that are provided by compiler vendors for the most popular PC and console (box connected to TV) gaming platforms have performance problems. EASTL generally outperforms all existing STL implementations; it does so partly due to algorithmic improvements but mostly due to practical improvements that take into account compiler and hardware behavior. See Appendix item 20. * Existing STL implementations are hard to debug/trace, as some STL implementations use cryptic variable names and unusual data structures and have no code documentation. See Appendix item 2. * STL containers have private implementations that don't allow you to work with their data structures in a portable way, yet sometimes this is an important thing to be able to do (e.g. node pools). See A
You know I'm not sure why you had to go wreck a pretty good argument with an Ad Hominem:-(
Considering Steve Forbes net worth is of ~$400+ Million calling him an 'idiot' without posting your net worth is the pot calling the kettle black (or hypocritical.)
If you meant to say "Steve Forbes's philosophy on economics is short sighted" then you might be taken [more] professionally instead of being dismissed as ranting.
Now with that said your insightful point about "Money is the primary projection of sovereign power."is spot on which is why local currencies are starting to take off. Money is a convenient exchangeable representation of Time & Knowledge. That is why there are those who argue "Taxation is Theft" because it indirectly robs a man, not as many think of what he produces but of his timewhich he had to spend to create the product in the first place.
The real point though that I believe you are trying to communicate is that ANY system based on 'Fiat Currency' and/or 'Interest' is DOOMED to _eventually_ fail.
Sadly I must agree. Unfortunately economists continue to peddle their pet theorycrafting and armchair quarterbacking on how money works without understanding where inflation and worth comes from in the first place. Namely, Any economic theory that does not recognize that:
a) things have simulatenous multiple values based on the relationship between the buyer & seller, and
b) There Is No Such Thing As A Free Lunch, and
c) There are at least 3 levels to the meaning of money,
>> A $200 pocket phone still cannot do a lot of things a full desktop PC could do a decade ago. > Only because the software isn't there. And fixing that is only a matter of time.... The CPU is really only a bottleneck
Can I have some of what you are smoking please?
1. Let me know when I can _compile_ on a smart phone. Last time I checked there is NO native compiler running on iOS -- you need a "real" computer (aka desktop) for that. Likewise for game development you're not going to use some shitty 1 GB mobile CPU when you have 16 GB or more plus an i7 for game development. Maybe you'll complain most people don't need "high end code editing". Fine. Let me know when I can edit my HTML / Javascript pages on a phone. Just because you _can_ do it, doesn't mean you _should_ do it. My next point addresses this:
2. Why the hell would I even try to develop on a phone at a crappy low res phone display 1000x600 when I have 2560x1440 27" monitor to write code on AND a 2nd 1920x1080 monitor to run my app on??
IF phones would let me extend their "screen" to a REAL monitor then Yes, you MIGHT have a point someday.
At least you didn't mention the GPU. The advancement of GPU and OpenGL is moving along quite nicely. Every iOS user needs to check out "The Room" for a perfect example of how to properly use a GPU ! https://itunes.apple.com/us/app/the-room/id552039496?mt=8
Just in case you don't get it. The KEY point is:
Mobile = great for consuming content, Desktop = great for creating content.
Will Mobile catch up to the Desktop? Yes, I agree the gap will significantly decrease but I seriously doubt it will even come close within 10 years. The number of people consuming content is always much > the number of people creating content.
-- In other news ZDnet is dead. I haven't read "PC Magazine" in years.
Another problem not even mention is that the Fermi Paradox is based on lack of information; it is a pseudo Paradox become people don't understand all the variables. In 10 years this paradox will become moot as new information is made available on a new discovery.
-- Science is not about a path towards Truth, but a path of removing ignorance.
* PlentyOfFish (POF) gets 1.2 billion page views/month, and 500,000 average unique logins per day. The peak season is January, when it will grow 30 percent. POF has one single employee: the founder and CEO Markus Frind. * 30+ Million Hits a Day (500 - 600 pages per second). * 1.1 billion page views and 45 million visitors a month. * Has 5-10 times the click through rate of Facebook. * 2 load balanced web servers with 2 Quad Core Intel Xeon X5355 @ 2.66Ghz), 8 Gigs of RAM (using about 800 MBs), 2 hard drives, runs Windows x64 Server 2003.
The elephant in the room that no one is really talking about is that Silicon doesn't really scale past 5 GHz. While it is possible to get a CPU to run at 100 GHz (yes, GHz) unfortunately
a) you can't afford it, and
b) can't afford to cool it.
It is going to be quite a while (decades) before (Silicon-)germanium are ubiquitous enough. The jury* is still out if graphene will pan out. Time will tell...
> It all comes down to both AMD and Intel building chips that are just so insanely powerful that folks can't come up with enough useful work for them to do, certainly not enough to max 'em out.
Yeah we can, but the market is extremely narrow. I would rather take a 100 GHz machine with 1 core, then a 1 GHz machine with 1000 cores. Not every problem can be parallelized !
There are tons of applications and algorithms that will bog ANY GHz machine; ALSO partially due to the problem of dog-slow-RAM which is an order-of-10 magnitude slower then the CPU's native L2 cache speed.
Us graphics guys (and I would imagine the AI) guys want/need 100 Ghz + 10,000 core machines for real time processing (we already work with a 2,000 core GPU! i.e. Scientific/Math computing via nVidia CUDA.) The rest of the general public doesn't give a fuck about GHz, cores, and slow bottlenecks like hard drives / memory speeds.
Graphene is where silicon was in 1948 (the first transistor used Germanium BTW): basically nice in theory and very promising but many practical issues existing that prevented even lab prototype devices from being made. It wasn't even possible to make a reliable silicon transistor until the mid-to-late-1950s.
Will graphene be practical in only 10 years? It's a long shot because of current infrastructure and technologies:...
There is a time and a place for GC. If you don't understand BOTH the Pros AND Cons you really don't understand a subject in detail.
i.e. _IF_ one could specify the maximum milliseconds allowed the GC is allowed to run (i.e. 2 ms) per frame THEN it would be acceptable for game development. Currently GC has no place at run-time DUE to its non-deterministic nature.
Relying on GC is like relying on the compiler to guarantee safe array access. Sure it works but one must always remember the cardinal rule:
TINSTAAFL, that is, There Is No Such Thing As A Free Lunch
Now you just need to implement CORDIC algorithms for trig, power, log, mult, div, and square root and you would be all set :-0
http://en.wikipedia.org/wiki/CORDIC
Very nice!
> how does anything exist if there is no space?
So the number 2 does't exist? Infinity doesn't exist?
You seem to be greatly confused about meta-physics. Physical reality is only a tiny subset of much larger reality that scientists are generally clueless about.
I would agree a $1K GPU is largely a waste for the majority however you are missing WHY someone would even spend $1,000 on a GPU in the first place.
Namely, I recently picked up a GTX Titan for a couple of reasons:
* I run all* my games at 120 Hz** so I can use LightBoost*** on my Asus VG248QE monitor. (I don't care about triple monitor 5760x1080)
* Since it is a single GPU chip I don't have to worry about microstuttering**** issues plague that ALL SLI / XFIRE cards.
* It only uses 250W***** under full load
* It is quiet even under full load
* It supports CUDA 5
* I've been tracking GPU performance & prices since 2000. GPU cards depreciate about $100/year. I expect my Titan to last 5 to 10 years before shitty mobile & laptop GPUs catch up. For my game dev I am NOT targeting the high end BUT the LOW end. I need the lowest common denominator to significantly rise.
So before your smug comments you might actually want to TALK to a gamer and find out their _reasons_ instead of just dissing everything as some epeen -- those losers are the posers / fanbois.
Footnotes / References:
* Except for Path of Exile which crashes if you have LightBoost turned on !
** Anyone who says the human eye can't see more then 30 frames per second is full of shit -- they most likely have never even USED a 120 Hz monitor. There IS a difference between rendering at 30 Hz, 60 Hz, and 120 Hz.
*** Asus VG278H High Speed LightBoost Video http://www.youtube.com/watch?v=hD5gjAs1A2s
**** GPU stuttering
http://www.anandtech.com/show/6857/amd-stuttering-issues-driver-roadmap-fraps
http://www.pcper.com/reviews/Graphics-Cards/Frame-Rating-New-Graphics-Performance-Metric
http://www.pcper.com/reviews/Graphics-Cards/Frame-Rating-Part-3-First-Results-New-GPU-Performance-Tools
***** http://www.anandtech.com/show/6774/nvidias-geforce-gtx-titan-part-2-titans-performance-unveiled/15
/sarcasm. Right, the universe just spontaneous came into existence.
From the Laws of Thermal Dynamics we know energy can not be created nor destroyed.
Einstein showed us all Matter is Energy.
Therefore the Universe has ALWAYS existed in one form or another.
Q.E.D.
Yeah the example has been greatly simplified as I didn't discuss locality (Basic Blocks), nor compiler tricks such as the one you mention stuffing values in to "partial" registers, nor compiler-assisted register renaming (hints the compiler can give to the CPU), thread optimization, etc. as they are extremely hardware, compiler, and application specific. It is amazing how exceedingly complex this gets so fast.
I really wish we could have cheap CPUs with 256 x 64-bit accessible registers, where
* register 0 has been hardwired to 0x00000000_00000000 = zero
* register 1 has been hardwired to 0x00000000_00000001 = one
* register 2 has been hardwired to 0x00000000_80000000 = signed 32-bit mask
* register 3 has been hardwired to 0x80000000_00000000 = signed 64-bit mask
* register 253 has been hardwired to 0x7F7F7F7F_7F7F7F7F
* register 254 has been hardwired to 0x80808080_80808080
* register 255 has been hardwired to 0xFFFFFFFF_FFFFFFFF = negative 1 = not zero
* and every 4 registers could be aliased in vector form: i.e. V0 refers to < R0, R1, R2, R3 > and V1 = < R4, R5, R6, R7 > , etc.
Sadly it looks likes x86_64 / AMD64 is here to stay.
Yeah, it is not exactly an apples to apples comparison. I really should of specified that.
Thanks for the extra details. I'm sure where you are getting 6 x 32-bit from though? Are you confusing the 6 ROPs?
http://images.anandtech.com/doci/6760/GK110_Block_Diagram_FINAL2.png
I just got my Titan and was kind of surprised to see the 14 SMXes myself. Each SMX has 192 FP32 cores (12*16) which explains where the odd 2688 comes from: 14*12*16 = 14*192 = 2688.
Reference
* http://www.anandtech.com/show/6760/nvidias-geforce-gtx-titan-part-1
> Experience is great, but it's not the only factor that goes into making someone competent.
True however those of us that have been here a while remember the 20-year cycle where everything is new again as everything cycles from big iron down to wimpy desktops and back again. For every "new" technology in the 90's and 2000's somebody was already doing it ~ 20 years ago. The kids these days don't remember the "silver bullets" that are always over-hyped, how Microsoft invents some 3-letter acronym for their new proprietary technology every 5 years, etc.
i.e. Infocom games -- byte code, virtual memory, etc.
> Afaict the largest DIMM of desktop memory* currently available is 8GB.
> * DDR3, unregistered non-ecc.
Depends how you define "desktop memory"
16 GB, and 32 GB sticks are "available" in extremely limited supplies
$360 Kingston 16GB 240-Pin DDR3 SDRAM DDR3 1333 Desktop Memory Model KVR13LR9D4L/16
http://www.newegg.com/Product/Product.aspx?Item=N82E16820239525
$1400 HP 627814-B21 32GB DDR3 SDRAM Memory Module
http://www.newegg.com/Product/Product.aspx?Item=N82E16820326202
Not sure if this counts as desktop memory ... (technically NewEgg lists it as Server Memory)
$1400 IBM 32GB DDR3 ECC Registered DDR3 1066 (PC3 8500)
http://www.newegg.com/Product/Product.aspx?Item=N82E16820135081
> I've seen systems that claim support for up to 2TB of ram.
The HP ProLiant servers support up to 2 TB with 64 DIMM slots. Only $10K for the mobo, the RAM will only cost you $90K :-)
http://h10010.www1.hp.com/wwpc/us/en/sm/WF04a/15351-15351-3328412-241644-3328422.html?dnr=1
But yeah, looks like we have to wait another 10 - 20 years before we start seeing "normal" desktop motherboards support more then 128 GB. The 4 or 8 DIMM sockets will be "good enough" for a long time.
> one of the presenters said that one of the most surprising speed-ups for 64-bit code came from just having 16 real general purpose registers to work with.
Yeah, this has been known for ages. The technical term is called "register spill"* in compiler land.
* See: http://en.wikipedia.org/wiki/Register_allocation
i.e. A compiler tries to optimize register usage by trying to reuse temporaries and minimize load/stores since memory is extremely SLOW compared to registers/L1/L2/L3.
Here's a practical example. Let's say your entire code base at run time has a maximum function depth of around 8 calls. If the average number of registers used (passed in, passed out) is 3, a CPU with 32 registers might be able to have the compiler pass all function arguments in registers instead of the slow stack. If your CPU only has 8 registers you will be spilling the majority of time seriously impeding performance.
Other optimizations involve using huffman encoding for the mnemonics. i.e. You can sort ALL the assembly instructions based on usage and THEN assign opcodes THAT value. Related is 'code density'. Initially 64-bit code wasted vastly more memory.
Efïcient Code Density Through Look-up Table Compression
http://www.date-conference.com/proceedings/PAPERS/2007/DATE07/PDFFILES/05.7_2.PDF
If one woman can have a baby in 9 months, then 9 women can have a baby in one month, right?
No.
Not every task can be run in parallel.
Now however if your data is _independent_ then you can distribute the work out to each core. Let's say you want to search 2000 objects for some matching value. On a 8-core CPU you would need 2000/8 = 250 searches. On the Titan each core could process 1 object.
There are also latency vs bandwidth issues, meaning it takes time to transfer the data from RAM to the GPU, process, and transfer the results back, but if the GPU's processing time is vastly less then the CPU, you can still have HUGE wins.
There are also SIMD / MIMD paradigms which I won't get into, but basically in layman's terms means the SIMD is able to process more data in the same amount of time.
You may be interested in reading:
http://perilsofparallel.blogspot.com/2008/09/larrabee-vs-nvidia-mimd-vs-simd.html
http://stackoverflow.com/questions/7091958/cpu-vs-gpu-when-cpu-is-better
When your problem domain & data are able to be run in parallel then GPU's totally kick a CPU's in terms of processing power AND in price. i.e.
An i7 3770K costs around $330. Price/Core is $330/8 = $41.25/core
A GTX Titan costs around $1000. Price/Core is $1000/2688 = $0.37/core
Remember computing is about 2 extremes:
Slow & Flexible < - - - > Fast & Rigid
CPU (flexible) vs GPU (rigid)
* http://www.newegg.com/Product/Product.aspx?Item=N82E16819116501
* http://www.newegg.com/Product/Product.aspx?Item=N82E16814130897
> Can someone please explain why it is so important to have frame rates that exceed the refresh rate of the monitor?
Simple: To _guarantee_ frame rates will STAY ABOVE the refresh rate WHEN you need to have the GPU do more work.
Synopsis: The GPU does a variable amount of work each frame. You don't want your game optimized for the average case but for the WORST case. You want to guarantee a MINIMUM frame rate of (at least) 60 Hz.
i.e.
If you are playing a FPS (first person shooter) at 60 fps (frames/second) locked to 60 Hz and a grenade goes off causing smoke then the GPU has more work to do for a few frames rendering all those layers of alpha-blended smoke which will drop your frame rate down to 40 fps. You will notice the game looks "choppy" or micro-lag as it drops from a steady 60 Hz below 60 Hz.
If the game is running at 90 fps, but your monitor is capping it to 60 Hz (i.e. with V-Sync), even with the grenade the framerate dropping down to 70 fps you will STILL have a SMOOTH frame rate at 60 Hz.
The instant a game drops below 60 fps it looks and feels "stuttery". Personally I prefer 100+ hz. There are even monitors which support up to 144 Hz such as the fantastic Asus VG248QE.
Playing Team Fortress 2 (or Portal 2) with ALL the graphic rendering options set to max and STILL running at 120 Hz (and 200+ fps) is sweet!
Locking the frame rate between 100 and 120 Hz allows LightBoost to work with nVidia cards and certain monitors. Lightboost is a fantastic option to get rid of the stupid "motion blur" and "ghosting" on LCD monitors so they perform like CRTs.
See this video if you want to see the difference between 120 Hz with LightBoost OFF vs ON.
Asus VG278H High Speed LightBoost Video
http://www.youtube.com/watch?v=hD5gjAs1A2s
Does this help?
> EA (the game company) created their own STL replacement basically just to add a GC and hashmaps, because they were tired of reimplementing these features IN EVERY DAMN GAME
No the _real_ reason was because STL was horribly designed and implemented in places:
You have jest but one does have to wonder at the amount of embedded Linux devices (Set-Top-Boxes, Android*, Servers, etc) that are out there ...
* http://en.wikipedia.org/wiki/Android_(operating_system)#Linux
So add the WRT54GL to it running Tomato, OpenWRT, or DDWRT.
$50 from NewEgg
http://www.newegg.com/Product/Product.aspx?Item=33-124-190
You know I'm not sure why you had to go wreck a pretty good argument with an Ad Hominem :-(
Considering Steve Forbes net worth is of ~$400+ Million calling him an 'idiot' without posting your net worth is the pot calling the kettle black (or hypocritical.)
If you meant to say "Steve Forbes's philosophy on economics is short sighted" then you might be taken [more] professionally instead of being dismissed as ranting.
Now with that said your insightful point about "Money is the primary projection of sovereign power." is spot on which is why local currencies are starting to take off. Money is a convenient exchangeable representation of Time & Knowledge. That is why there are those who argue "Taxation is Theft" because it indirectly robs a man, not as many think of what he produces but of his time which he had to spend to create the product in the first place.
The real point though that I believe you are trying to communicate is that ANY system based on 'Fiat Currency' and/or 'Interest' is DOOMED to _eventually_ fail.
Sadly I must agree. Unfortunately economists continue to peddle their pet theorycrafting and armchair quarterbacking on how money works without understanding where inflation and worth comes from in the first place. Namely, Any economic theory that does not recognize that:
a) things have simulatenous multiple values based on the relationship between the buyer & seller, and
b) There Is No Such Thing As A Free Lunch, and
c) There are at least 3 levels to the meaning of money,
is woefully incomplete.
--
Only Cowards use Censorship
>> A $200 pocket phone still cannot do a lot of things a full desktop PC could do a decade ago. ... The CPU is really only a bottleneck
> Only because the software isn't there. And fixing that is only a matter of time.
Can I have some of what you are smoking please?
1. Let me know when I can _compile_ on a smart phone. Last time I checked there is NO native compiler running on iOS -- you need a "real" computer (aka desktop) for that. Likewise for game development you're not going to use some shitty 1 GB mobile CPU when you have 16 GB or more plus an i7 for game development. Maybe you'll complain most people don't need "high end code editing". Fine. Let me know when I can edit my HTML / Javascript pages on a phone. Just because you _can_ do it, doesn't mean you _should_ do it. My next point addresses this:
2. Why the hell would I even try to develop on a phone at a crappy low res phone display 1000x600 when I have 2560x1440 27" monitor to write code on AND a 2nd 1920x1080 monitor to run my app on??
IF phones would let me extend their "screen" to a REAL monitor then Yes, you MIGHT have a point someday.
At least you didn't mention the GPU. The advancement of GPU and OpenGL is moving along quite nicely. Every iOS user needs to check out "The Room" for a perfect example of how to properly use a GPU ! https://itunes.apple.com/us/app/the-room/id552039496?mt=8
Just in case you don't get it. The KEY point is:
Mobile = great for consuming content,
Desktop = great for creating content.
Will Mobile catch up to the Desktop? Yes, I agree the gap will significantly decrease but I seriously doubt it will even come close within 10 years. The number of people consuming content is always much > the number of people creating content.
--
In other news ZDnet is dead. I haven't read "PC Magazine" in years.
> partly resolving the Fermi Paradox
Another problem not even mention is that the Fermi Paradox is based on lack of information; it is a pseudo Paradox become people don't understand all the variables. In 10 years this paradox will become moot as new information is made available on a new discovery.
--
Science is not about a path towards Truth, but a path of removing ignorance.
> Devs these days are more concerned about rendering amazing graphics, and epic cut scenes
Oblg. FPS map design: 1993 vs 2010
http://img.gawkerassets.com/img/17f0o4rihl081gif/original.gif
--
Games are META-Art. They combine music, graphics, design, and code. All which are a combination of Science and Art.
> I hate to break the news to ya dude, but your niche?
Oh I certainly agree. I guess I wasn't communicating that point very well.
> There just isn't enough of you to make the billions required to make a 10GHz CPU a reality
Yes, sadly.
For now. :-)
Agreed. This guy doesn't really understand scalability.
The OP needs to read how Plenty of Fish started off:
http://highscalability.com/plentyoffish-architecture
* PlentyOfFish (POF) gets 1.2 billion page views/month, and 500,000 average unique logins per day. The peak season is January, when it will grow 30 percent.
POF has one single employee: the founder and CEO Markus Frind.
* 30+ Million Hits a Day (500 - 600 pages per second).
* 1.1 billion page views and 45 million visitors a month.
* Has 5-10 times the click through rate of Facebook.
* 2 load balanced web servers with 2 Quad Core Intel Xeon X5355 @ 2.66Ghz), 8 Gigs of RAM (using about 800 MBs), 2 hard drives, runs Windows x64 Server 2003.
And also about NginX:
http://www.aosabook.org/en/nginx.html
If you "need" multiple servers when you are first _starting_ out you're probably focusing on solving the wrong problems.
The elephant in the room that no one is really talking about is that Silicon doesn't really scale past 5 GHz. While it is possible to get a CPU to run at 100 GHz (yes, GHz) unfortunately
a) you can't afford it, and
b) can't afford to cool it.
It is going to be quite a while (decades) before (Silicon-)germanium are ubiquitous enough. The jury* is still out if graphene will pan out. Time will tell...
> It all comes down to both AMD and Intel building chips that are just so insanely powerful that folks can't come up with enough useful work for them to do, certainly not enough to max 'em out.
Yeah we can, but the market is extremely narrow. I would rather take a 100 GHz machine with 1 core, then a 1 GHz machine with 1000 cores. Not every problem can be parallelized !
There are tons of applications and algorithms that will bog ANY GHz machine; ALSO partially due to the problem of dog-slow-RAM which is an order-of-10 magnitude slower then the CPU's native L2 cache speed.
Us graphics guys (and I would imagine the AI) guys want/need 100 Ghz + 10,000 core machines for real time processing (we already work with a 2,000 core GPU! i.e. Scientific/Math computing via nVidia CUDA.) The rest of the general public doesn't give a fuck about GHz, cores, and slow bottlenecks like hard drives / memory speeds.
* http://www.physicsforums.com/showthread.php?t=564490
There is a time and a place for GC. If you don't understand BOTH the Pros AND Cons you really don't understand a subject in detail.
i.e.
_IF_ one could specify the maximum milliseconds allowed the GC is allowed to run (i.e. 2 ms) per frame THEN it would be acceptable for game development. Currently GC has no place at run-time DUE to its non-deterministic nature.
Relying on GC is like relying on the compiler to guarantee safe array access. Sure it works but one must always remember the cardinal rule:
TINSTAAFL, that is, There Is No Such Thing As A Free Lunch
> But that would be idiocy; I might as well write my own libc.
As a graphics guy that actually is quite reasonable.
Far too many programmers don't have a clue about how to write: atoi() and its dual itoa().
Only the fanboi's still argue over which API is better. The rest of us just get on with the job having too much fun playing with Shaders. ;-)
> more gamers use OpenGL today then Direct X
> [citation needed]
You do realize the embedded space (iPhone, Android, STBs) using OpenGL ES 1.x 2.x is larger then the PC DirectX space, right?