Trending Games | ArcheAge | World of Warcraft | Destiny | Star Trek Online

  Network:  FPSguru RTSguru
Login:  Password:   Remember?  
Show Quick Gamelist Jump to Random Game
Members:2,856,517 Users Online:0
Games:740  Posts:6,240,638
Recent forum postsRSS
Active threads
Cloud view
List all forums
General Forums
Developers Corner General Discussion
Popular Game Forums
Click a status to find game forum
Game Forums
Click a letter to find game forum
A-C
2029 Online 2112: Revolution 2Moons 4Story 8BitMMO 9 Dragons A Mystical Land A Tale in the Desert III A3 ACE Online ARGO Online Aberoth Absolute Force Online Absolute Terror Achaea Adellion Aerrevan Aetolia, the Midnight Age Age of Armor Age of Conan Age of Empires Online Age of Mourning Age of Wulin Age of Wushu Aida Arenas Aika Aion Albion Online Alganon All Points Bulletin (APB) Allods Online Altis Gates Amazing World Anarchy Online Ancients of Fasaria Andromeda 5 Angels Online Angry Birds Epic Anime Trumps Anmynor Anno Online Applo Arcane Hearts Arcane Legends ArchLord ArcheAge Archeblade Archlord X Ascend: Hand of Kul Asda 2 Asda Story Ashen Empires Asheron's Call Asheron's Call 2 Astera Online Astonia III Astro Empires Astro Lords: Oort CLoud Asura Force Atlantica Online Atriarch Aura Kingdom Aurora Blade Auto Assault Avatar Star Battle Dawn Battle Dawn Galaxies Battle for Graxia Battle of 3 Kingdoms Battle of the Immortals Battlecruiser Online Battlestar Galactica Online Battlestar Reloaded Beyond Protocol Black Aftermath Black Desert Black Gold Black Prophecy Black Prophecy Tactics: Nexus Conflict Blacklight Retribution Blade & Soul Blade Hunter Blade Wars Blazing Throne Bless Blitz 1941 Blood and Jade Bloodlines Champions Boot Hill Heroes Borderlands 2 Borderlands: The Pre-Sequel Bound by Flame Bounty Bay Online Brain Storm Bravada Bravely Default Bravely Second Brawl Busters. Brick-Force Bright Shadow Bullet Run Business Tycoon Online CTRacer Cabal Online Caesary Call of Camelot Call of Gods Call of Thrones Camelot Unchained Canaan Online Cardmon Hero Cartoon Universe CasinoRPG Cast & Conquer Castle Empire Castlot Celtic Heroes Champions Online Champions of Regnum Chaos Online Child of Light Chrono Tales Citadel of Sorcery CitiesXL Citizen Zero City of Decay City of Heroes City of Steam City of Transformers City of Villains Civilization Online Clan Lord Clash of Clans Cloud Nine Club Penguin Colony of War Command & Conquer: Tiberium Alliances Company of Heroes Online Conquer Online Conquer Online 3 Continent of the Ninth (C9) Core Blaze Core Exiles Corum Online Craft of Gods Crimecraft Crimelife 2 Cronous Crota II Crusaders of Solaris Cultures Online Cyber Monster 2 Céiron Wars
D-F
D&D Online DC Universe DK Online DOTA DOTA 2 DUST 514 DV8: Exile Dalethaan Dance Groove Online Dark Age of Camelot Dark Ages Dark Legends Dark Orbit Dark Relic: Prelude Dark Solstice Dark and Light DarkEden Online DarkSpace Darkblood Online Darkest Dungeon Darkfall Darkfall: Unholy Wars Darkwind: War on Wheels Das Tal Dawn of Fantasy Dawntide DayZ Dead Earth Dead Frontier Dead Island Dead Island 2 Dead Island: Riptide Deco Online Deepworld Defiance Deicide Online Dekaron Demons at the Horizon Desert Operations Destiny Diablo 3 Diamonin Digimon Battle Dino Storm Disciple Divergence Divina Divine Souls Divinity: Original Sin Dofus Dominus Online Dragon Age: Inquisition Dragon Ball Online Dragon Born Online Dragon Crusade Dragon Empires Dragon Eternity Dragon Nest Dragon Oath Dragon Pals Dragon Raja Dragon's Call Dragon's Call II Dragon's Prophet DragonSky DragonSoul Dragona Dragonica Dragons and Titans Drakengard 3 Dream of Mirror Online Dreamland Online Dreamlords: The Reawakening Drift City Duels Dungeon Blitz Dungeon Fighter Online Dungeon Overlord Dungeon Party Dungeon Rampage Dungeon Runners Dungeon of the Endless Dynastica Dynasty Warriors Online Dynasty of the Magi EIN (Epicus Incognitus) EVE Online Earth Eternal Earth and Beyond Earthrise Eclipse War Ecol Tactics Online Eden Eternal Edge of Space Einherjar - The Viking's Blood Elder Scrolls Online Eldevin Elf Online Elite: Dangerous Embers of Caerus Emil Chronicle Online Empire Empire & State Empire Craft Empire Universe 3 EmpireQuest Empires of Galldon End of Nations Endless Ages Endless Blue Moon Online Endless Online Entropia Universe EpicDuel Erebus: Travia Reborn Eredan Eternal Blade Eternal Lands Eternal Saga Ether Fields Ether Saga Online Eudemons Online EuroGangster EverEmber Online EverQuest Next EverQuest Online Adventures Evernight Everquest Everquest II Evony Exarch Exorace F.E.A.R. Online Face of Mankind Fairyland Online Fall of Rome Fallen Earth Fallen Sword Fallout Online Family Guy Online Fantage Fantasy Earth Zero Fantasy Realm Online Fantasy Tales Online Fantasy Worlds: Rhynn Faunasphere Faxion Online Fearless Fantasy Ferentus Ferion Fiesta Online Final Fantasy Type-0 HD Final Fantasy XI Final Fantasy XIV Final Fantasy XIV: A Realm Reborn Firefall Fists of Fu Florensia Flyff Football Manager Live Football Superstars Force of Arms Forge Forsaken World Fortnite Fortuna Forum for Discussion of Everlight Freaky Creatures Free Realms Freesky Online Freeworld Fung Wan Online Furcadia Fury Fusion Fall
G-L
GalaXseeds Galactic Command Online Game of Thrones: Seven Kingdoms Gameglobe Gate To Heavens Gates of Andaron Gatheryn Gauntlet Gekkeiju Online Ghost Online Ghost Recon Online Gladiatus Glitch Global Agenda Global Soccer Gloria Victis Glory of Gods GoGoRacer Goal Line Blitz Gods and Heroes GodsWar Online Golemizer Golf Star GoonZu Online Graal Kingdoms Granado Espada Online Grand Chase Grand Fantasia Grepolis Grimlands Guild Wars Guild Wars 2 Guild Wars Factions Guild Wars Nightfall H1Z1 Habbo Hotel Hailan Rising HaloSphere2 Haven & Hearth Hawken Heart Forth Alicia Hearthstone: Heroes of Warcraft Helbreath Hellgate Hellgate: London Hello Kitty Online Hero Online Hero Zero Hero's Journey Hero: 108 Online HeroSmash Heroes & Generals Heroes & Legends: Conquerors of Kolhar Heroes in the Sky Heroes of Bestia Heroes of Gaia Heroes of Might and Magic Online Heroes of Thessalonica Heroes of Three Kingdoms Heroes of the Storm Hex Holic Online Hostile Space Hunter Blade Huxley Icewind Dale: Enhanced Edition Illutia Illyriad Immortals USA Imperator Imperian Inferno Legend Infestation: Survivor Stories Infinite Crisis Infinity Infinity Iris Online Iron Grip: Marauders Irth Worlds Island Forge Islands of War Istaria: Chronicles of the Gifted Jade Dynasty Jagged Alliance Online Juggernaut Jumpgate Jumpgate Evolution KAL Online Kakele Online Kaos War Karos Online Kartuga Kicks Online King of Kings 3 Kingdom Heroes Kingdom Under Fire II Kingdom of Drakkar Kingory Kings and Legends Kings of the Realm KingsRoad Kitsu Saga Kiwarriors Knight Age Knight Online Knights of Dream City Kothuria Kung Foo! Kunlun Online L.A.W. LEGO Universe La Tale Land of Chaos Online Landmark Lands of Hope: Phoenix Edition LastChaos League of Angels League of Legends - Clash of Fates Legend of Edda: Vengeance Legend of Golden Plume Legend of Katha Legend of Mir 2 Legend of Mir 3 Legendary Champions Lego Minifigures Online Lichdom: Battlemage Life is Feudal Light of Nova Lime Odyssey Line of Defense Lineage Lineage Eternal: Twilight Resistance Lineage II Linkrealms Loong Online Lord of the Rings Online Lords Online Lords of the Fallen Lost Saga Lucent Heart Lunia Lusternia: Age of Ascension Luvinia World
M-Q
MU Online Mabinogi Maestia: Rise of Keledus MagiKnights Magic Barrage Magic World Online Manga Fighter MapleStory Martial Heroes Marvel Heroes Marvel Super Hero Squad Online Marvel: Avengers Alliance MechWarrior Online Megaten Meridian 59 : Evolution Merlin MetalMercs Metaplace Metin 2 MicroVolts Middle-earth: Shadow of Mordor Midkemia Online Might & Magic Heroes: Kingdoms MilMo Minecraft Mini Fighter Minions of Mirth Ministry of War Monato Esprit Monkey King Online Monkey Quest Monster & Me Monster Madness Online MonsterMMORPG Moonlight Online: Tales of Eternal Blood Moonrise Mordavia Mortal Online Mourning My Lands Myst Online: URU Live Myth Angels Online Myth War Myth War 2 Mytheon Mythic Saga Mythos N.E.O Online NIDA Online Nadirim Naviage: The Power of Capital Navy Field Need for Speed World Nemexia Neo's Land NeoSteam Neocron Nether Neverwinter Nexus: The Kingdom Of The Winds NinjaTrick NosTale Novus Aeterno Oberin Odin Quest Odyssey RPG Ogre Island Omerta 3 Online Boxing Manager Onverse Order & Chaos Online Order of Magic Original Blood Origins Return Origins of Malu Orion's Belt Otherland Forums OverSoul Overkings Oz Online Oz World Pandora Saga Pantheon: Rise of the Fallen Panzar Parabellum Parallel Kingdom Parfait Station Path of Exile Pathfinder Online Perfect World Perpetuum Online Persona V Phantasy Star Online 2 Phantasy Star Universe Phoenix Dynasty Online Phylon Pi Story Picaroon Pirate Galaxy Pirate Storm Pirate101 PirateKing Online Pirates of the Burning Sea Pirates of the Caribbean Online Pixie Hollow Planeshift Planet Arkadia Planet Calypso PlanetSide 2 Planetside Planets³ Playboy Manager Pocket Legends Pockie Ninja Pockie Pirates Pockie Saints PoxNora Prime World Prime: Battle for Dominus Priston Tale Priston Tale II Prius Online Project Blackout Project Powder Project Titan Forums Project Wiki Project Zomboid Puzzle Pirates Quest for Infamy Quickhit Football
R-S
R2 Online RAN Online RF Online ROSE Online Rage of 3 Kingdoms Ragnarok Online Ragnarok Online II RaiderZ Rakion Rappelz RappelzSEA Ravenmarch Realm Fighter Realm of the Mad God Realm of the Titans Realms Online Reclamation Red Stone Red War: Edem's Curse Regnum Online Remnant Knights Renaissance Repulse Requiem: Memento Mori Rift RiotZone Rise Rise of Dragonian Era Rise of Empire Rise of the Tycoon Risen 3: Titan Lords Rising of King Risk Your Life Rivality Rockfree Rohan: Blood Feud Role Play Worlds Roll n Rock Roma Victor Romadoria Rosh Online Roto X Rubies of Eventide Ruin Online Rumble Fighter Runes of Magic Runescape Rust Rusty Hearts Ryzom S4 League SAGA SD Gundam Capsule Fighter Online SMITE SUN Sacred 3 Sagramore Salem SaySayGirls Scarlet Blade Scions of Fate Seal Online: Evolution Second Chance Heroes Second Life Secret of the Solstice Seed Serenia Fantasy Seven Seas Saga Seven Souls Online Sevencore Shadow Realms Shadow of Legend Shadowbane Shadowrun Online Shaiya Shards Online Shattered Galaxy Sho Online Shot Online Shroud of the Avatar SideQuest Siege on Stars Sigonyth: Desert Eternity Silkroad Online Skyblade Skyforge SmashMuck Champions Smoo Online Soldier Front Soul Master Soul Order Online Soul of Guardian Space Heroes Universe Sparta: War of Empires Spellcasters Sphere Spiral Knights Spirit Tales Splash Fighters Squad Wars Star Citizen Star Sonata 2 Star Stable Star Supremacy Star Trek Online Star Trek: Infinite Space Star Wars Galaxies Star Wars: Clone Wars Adventures Star Wars: The Old Republic StarQuest Online Stargate Worlds Starlight Story Starpires State of Decay SteelWar Online Stone Age 2 Stormfall: Age of War Storybricks Stronghold Kingdoms Styx: Master of Shadows Sudden Attack Supremacy 1914 Supreme Destiny Sword Girls Sword of Destiny: Rise of Aions SwordX Swords of Heavens Swordsman
T-Z
TERA TS Online Tabula Rasa Tactica Online Tales Runner Tales of Fantasy Tales of Pirates Tales of Pirates II Tales of Solaris Talisman Online Tamer Saga Tank Ace Tantra Online Tatsumaki: Land at War Terra Militaris TerraWorld Online Thang Online The 4th Coming The Agency The Aurora World The Banner Saga The Black Watchmen The Chronicle The Chronicles of Spellborn The Crew The Division The Hammers End The Incredible Adventures of Van Helsing The Incredible Adventures of Van Helsing 2 The Legend of Ares The Lost Titans The Matrix Online The Mighty Quest for Epic Loot The Missing Ink The Mummy Online The Myth of Soma The Pride of Taern The Realm Online The Repopulation The Secret World The Sims Online The Strategems The West The Witcher 3: Wild Hunt Theralon There Therian Saga Thrones of Chaos Tibia Tibia Micro Edition Tiger Knight Titan Siege Titans of Time Toontown Online Top Speed Topia Online Torchlight Total Domination Transformers Universe Transistor Traveller AR Travia Online Travian Trials of Ascension Tribal Hero Tribal Wars Tribes Universe Trickster Online Trove Troy Online True Fantasy Live Online Turf Battles Twelve Sky Twelve Sky 2 Twilight War Tynon U.B. Funkeys UFO Online URDEAD Online Ultima Forever: Quest for the Avatar Ultima Online Ultima X: Odyssey Ultimate Naruto Ultimate Soccer Boss Uncharted Waters Online Undercover 2: Merc Wars Underlight Unification Wars Universe Online Utopia Valkyrie Sky Vampire Lord Online Vanguard: Saga of Heroes Vanquish Space Vector City Racers Vendetta Online Victory - Age of Racing Vindictus Virtonomics Vis Gladius Visions of Zosimos VoidExpanse Voyage Century Online W.E.L.L. Online WAR (Warhammer Online) WAR2 Glory WYD Global Wakfu War Thunder War of 2012 War of Angels War of Legends War of Mercenaries War of Thrones War of the Immortals WarFlow Waren Story Wargame1942 Warhammer 40,000: Eternal Crusade Warhammer 40K: Dark Millennium Online Warhammer Online: Wrath of Heroes Warkeepers Warrior Epic Wartune Wasteland 2 WebLords Wild West Online WildStar Wind of Luck WindSlayer 2 Wings of Destiny Wish Wizard101 Wizardry Online Wizards and Champions Wonder King Wonderland Online World Golf Tour World of Battles World of Darkness World of Heroes World of Kung Fu World of Pirates World of Speed World of Tanks World of Tanks Generals World of Warcraft World of Warplanes World of Warships World of the Living Dead WorldAlpha Wurm Online Xenoblade Chronicles: X Xenocell Xiah Xsyon Xulu YS Online Yitien ZU Online Zentia Zero Online Zero Online: The Andromeda Crisis Zodiac Online Zombies Ate My Pizza eRepublik

MMORPG.com Discussion Forums

General Discussion

General Discussion 

Hardware  » Have we reached the end on single-threaded CPU performance?

2 Pages 1 2 » Search
38 posts found
  Quizzical

Guide

Joined: 12/11/08
Posts: 13388

 
OP  8/31/13 5:08:36 PM#1

In 2011, Intel launched Sandy Bridge, which was substantially better than anything that came before it.  In 2012, they launched Ivy Bridge, which was a bit faster than Sandy at stock speeds, but wouldn't overclock as far, so they were basically tied if you overclocked both.  In 2013, Intel released Haswell, which likewise was a little faster at stock speeds but wouldn't overclock quite as far.  So a CPU released in 2011 is still as fast as it gets if you overclock everything.  Furthermore, with 2014's Broadwell rumored to not come to desktops at all, or perhaps only in a crippled, low power form, Sandy Bridge could easily remain nearly tied with the high end until Sky Lake arrives well into 2015--or maybe 2016, with the way everything is getting delayed lately.

And it's far from clear that Sky Lake will improve single-threaded CPU performance, either.  There's a huge emphasis on bringing CPU power consumption down, whether for laptops, tablets, data centers, or whatever.  Process nodes can be tuned for higher performance or lower power consumption, but there are trade-offs.  While x86 CPUs once were built heavily for higher performance, now there's more emphasis on lower power consumption, so it's far from clear that future process nodes will even be able to clock as high as current ones.  There's also the issue that with CPU cores proper now taking up a very small percentage of total die space, even if you can dissipate a fixed amount of heat from the entire die, if where the heat is actually produced is very heterogeneous with most of the heat in a few tiny areas, that can still be a major pain to cool.

This isn't to say that we've reached the end on CPU performance period, of course.  You can still add more CPU cores.  But that only helps if code is designed to take advantage of more CPU cores, and that gets tricky for many programs once the core count gets high enough.  In contrast, GPUs will still scale well to arbitrarily many shaders for the foreseeable future, and I see no reason to believe that GPU advances will slow down until Moore's Law dies.  (Memory bandwidth is a big problem today, but that will get something of a reprieve at 14/16 nm with large L3 caches on the GPU die.)

I'm not willing to answer the question in the title with a "yes".  The history of people predicting the end of technological advancements mostly features one wildly wrong prediction after another.  But for the first time in the history of computers, it's a question to be taken seriously--and to get any further serious advancements might well require moving away from traditional silicon transistors to some other radical, new technology.  Of course, the history of computers is one of doing that routinely, from solid state drives to LCD monitors to optical mice, to name a few of the relatively recent innovations.

  drbaltazar

Apprentice Member

Joined: 3/28/07
Posts: 7951

8/31/13 6:47:15 PM#2
Google:grapheme transistor 427 gigahertz!ya some people taught outside the box quantummly and this their result.basicly a CPU with 427 gigahertz would need so few transistor might be around only 40 million needed for high end .but testing is needed.their estimate for mobile application ?10000 grapheme transistor!at 10 nm each princess could have her magical ring
  Halandir

Apprentice Member

Joined: 8/02/08
Posts: 743

8/31/13 7:39:55 PM#3
Originally posted by Quizzical

You can still add more CPU cores.  But that only helps if code is designed to take advantage of more CPU cores, and that gets tricky for many programs once the core count gets high enough.

 

Interesting post. Actually anything above 1 core adds layers of complexity and "CPU bookkeeping".

Sure we have preemptive OS'es but that is basically just a layer to prevent instruction collisions and memory corruption. Even with a preemptive OS you need to consider raceconditions at application level.

So basically we already have a massive platform diversity (even if we limit ourselves to the i86/x86 and x64/amd64 platforms).

We basically have to work with 32bit/64bit memoryspace, at least 3 different MS OS'es (XP, 7 and 8) that have different preemptive kernels.

On HW layer we have a multitude of options: 1-12/2*1-2*12 CPU cores, more or less intelligent blockdevices (disks/arrays) AND:

Most devtools implement their own "optimizing" before the code is fed to the OS.

In the end: On application level/layer the developer/programmer needs to choose a fitting compromize for his/her application...

For many applications (Word processors, web browser etc.) the default choice is: "Optimize for lowest common denominator".

For more demanding application that are 90% CPU/MMU intensive its obvious: Optimize for a high number of cores and a 64bit addressspace. (Multimedia apps, database engines etc.)

Applications that are I/O intensive (lots of busactivity disk/GPU interdependency and where you expect your target audience to be on extremely different platforms (think games) the image gets a little blurred... You want the "bleeding edge" crew to see an advantage to having heftier HW, but you prefer not to set the bar too high to exclude a lot of potential clients with lower spec HW...

Thus you end up with what most already know: Most games are optimized for ~2 cores and 32bit OS. Separation/optimization on application level, between mem/block/socket activity and HID/GPU would make sense in many MMO's because you can leave the core-bookkeeping to the OS that way and still be effective on 2 cores.

 

Edit: Sigh... I always skip the second p in preemptive - Its a mental racecondition!

We dont need casuals in our games!!! Errm... Well we DO need casuals to fund and populate our games - But the games should be all about "hardcore" because: We dont need casuals in our games!!!
(repeat ad infinitum)

  Quizzical

Guide

Joined: 12/11/08
Posts: 13388

 
OP  8/31/13 9:01:11 PM#4
Originally posted by Halandir
Originally posted by Quizzical

You can still add more CPU cores.  But that only helps if code is designed to take advantage of more CPU cores, and that gets tricky for many programs once the core count gets high enough.

 

Interesting post. Actually anything above 1 core adds layers of complexity and "CPU bookkeeping".

Sure we have preemptive OS'es but that is basically just a layer to prevent instruction collisions and memory corruption. Even with a preemptive OS you need to consider raceconditions at application level.

So basically we already have a massive platform diversity (even if we limit ourselves to the i86/x86 and x64/amd64 platforms).

We basically have to work with 32bit/64bit memoryspace, at least 3 different MS OS'es (XP, 7 and 8) that have different preemptive kernels.

On HW layer we have a multitude of options: 1-12/2*1-2*12 CPU cores, more or less intelligent blockdevices (disks/arrays) AND:

Most devtools implement their own "optimizing" before the code is fed to the OS.

In the end: On application level/layer the developer/programmer needs to choose a fitting compromize for his/her application...

For many applications (Word processors, web browser etc.) the default choice is: "Optimize for lowest common denominator".

For more demanding application that are 90% CPU/MMU intensive its obvious: Optimize for a high number of cores and a 64bit addressspace. (Multimedia apps, database engines etc.)

Applications that are I/O intensive (lots of busactivity disk/GPU interdependency and where you expect your target audience to be on extremely different platforms (think games) the image gets a little blurred... You want the "bleeding edge" crew to see an advantage to having heftier HW, but you prefer not to set the bar too high to exclude a lot of potential clients with lower spec HW...

Thus you end up with what most already know: Most games are optimized for ~2 cores and 32bit OS. Separation/optimization on application level, between mem/block/socket activity and HID/GPU would make sense in many MMO's because you can leave the core-bookkeeping to the OS that way and still be effective on 2 cores.

 

Edit: Sigh... I always skip the second p in preemptive - Its a mental racecondition!

You don't try to write software to use exactly two CPU cores and no more unless you know exactly what hardware it's going to run on.  If you can make your program scale well to 12 cores (or more), you can just do that and let the OS decide which threads to schedule when, and it will keep however many CPU cores you have busy.

But the difficulty of making the CPU code scale well to many cores depends greatly on your algorithm, and can range from trivial to impossible.  Figuring out how to break a program up into chunks that can run at the same time with little to no dependence on each other has to be done by the programmer, not an OS or compiler.  There is some work to be done by the compiler and OS in threading, but the tools are there and ready, and people just need to use them.

The common myth that games can only use two cores is just that:  a myth, and a stupid one at that.  Many games do have CPU code that scales well to many CPU cores, but sometimes you don't notice because something else is the bottleneck rather than the CPU.  I think it's perpetuated to some degree by tech sites that go out of their way to pick badly coded games for their benchmarks, as those are the games that manage to run poorly on capable hardware.

  Icewhite

Made History

Joined: 7/11/11
Posts: 6495

Pink, it's like red but not quite.

8/31/13 9:04:47 PM#5

How many years did it take Pentiums to stop appearing on bargain-basement motherboards from Joe'sBuildYerOwnCheapMachine.com? And how long for the last of the VGA games to drop off the market?

I mean, you're basically asking a question about consumer habits, more than retailers, yes?

I'm probably looking at it backwards; de facto instead of de jure. But there's always been a lag between the theoretical limits and the practical user limits, guess I'm trying to say.

Self-pity imprisons us in the walls of our own self-absorption. The whole world shrinks down to the size of our problem, and the more we dwell on it, the smaller we are and the larger the problem seems to grow.

  Quizzical

Guide

Joined: 12/11/08
Posts: 13388

 
OP  8/31/13 9:12:53 PM#6
Originally posted by Icewhite

How many years did it take Pentiums to stop appearing on bargain-basement motherboards from Joe'sBuildYerOwnCheapMachine.com?

I mean, you're basically asking a question about consumer habits, more than retailers, yes?

Hmm...took about 10 years to migrate away from 640x480 web design.

No, it's about what hardware is out there, whether people buy it or not.

  g0m0rrah

Advanced Member

Joined: 1/23/13
Posts: 226

8/31/13 9:14:48 PM#7

 

 Dont we kind of bounce between the idea of single vs parallel. Isnt parallel almost always hindered by timing issues.  I thought with parallel that latency occurs due to some bits arriving at a later time, forcing a wait time on the bits that have already arrived.  I have no idea really, but I always wondered why serial seems faster than parallel when it goes to cabling and I wonder if the same problems occur with circuits and multi-processing.

  I would think that multi-processing would have become more common, why else do we have 8 core's on 1 cpu and in the server world its easy to dedicate cores to tasks. What I dont understand is why this hasnt translated to the desktop.  That is one of the main reasons I believe AMD is struggling because I think they took a gamble and thought multi-processing would be further along by this point.

 I also assume that AMD thought by this point that we would be able to leverage the power of the gpu much more easily on every day tasks.  Its funny how you have this powerful tool sitting in your computer, idle.

  Avison

Apprentice Member

Joined: 4/07/03
Posts: 348

Where is your god now?

8/31/13 9:31:05 PM#8

An excellent post on a topic that fascinates me. Programming most intensive applications for multiple cores is usually an incredibly complicated process. Sometimes things flow logically mathematically such as a thread diverges or in order to run a new thread it needs output values from two other threads.

When talking about gaming applications we're usually limited in how indepth our multicore efficiency can get. But for OS applications and the several self contained threads running on your pc... multicore is almost a complete advantage.

Almost every developer working on any application that needs performance will go the multi-threaded route in some way or another. If it is something that obviously doesn't need to be multi-threaded than a good developer won't waste time implementing it.

 

Designing processors and their cores is a dance of logic, intent, resources, and physics. While we're limited to printing circuits on two dimensions our only route, with the materials we have, is to be more efficient with multiple cores. I'm sure everyone has heard of graphine and several other breakthroughs that might allow us to print circuits in three dimensions. If that technology hits then you can expect a resurgence of 'single core' designs for the sake of simplicity.

I'd like to restate the reason we are using multi-core cpus and systems. We've relatively reached the processing power capacity of our single core designs with the materials and designs available to us. So instead of simply building a bigger engine we're making everything more efficient so that speed is still increasing as it used to... 'relative' to the observer.

  Avison

Apprentice Member

Joined: 4/07/03
Posts: 348

Where is your god now?

8/31/13 9:37:39 PM#9
Originally posted by g0m0rrah

 

 Dont we kind of bounce between the idea of single vs parallel. Isnt parallel almost always hindered by timing issues.  I thought with parallel that latency occurs due to some bits arriving at a later time, forcing a wait time on the bits that have already arrived.  I have no idea really, but I always wondered why serial seems faster than parallel when it goes to cabling and I wonder if the same problems occur with circuits and multi-processing.

  I would think that multi-processing would have become more common, why else do we have 8 core's on 1 cpu and in the server world its easy to dedicate cores to tasks. What I dont understand is why this hasnt translated to the desktop.  That is one of the main reasons I believe AMD is struggling because I think they took a gamble and thought multi-processing would be further along by this point.

 I also assume that AMD thought by this point that we would be able to leverage the power of the gpu much more easily on every day tasks.  Its funny how you have this powerful tool sitting in your computer, idle.

When a single program is using both cores, then yes, timing everything is a huge issue. But the real advantage of multi-core systems on desktops and servers is that unrelated programs can run on any available core instead of waiting... usually.

Modern operating systems do try to leverage the power of the GPU but the inherent design of the gpu stifles this. The GPU is a very specialized piece of hardware. Several companies I've worked with spent quite some time investigating GPU alternatives such as multi-purpose processing cards.

The problem with that idea then you get into the issue with specialization. If you're using the GPU for processing then you're still getting into the timing issues for multi-threaded applications... and in the end you could just have gotten another processor. If you're using the memory of the gpu/mppc then you could have just gotten more memory. The list goes on. No one wanted to use them because there was already a cheaper more specialized alternative available.

  Halandir

Apprentice Member

Joined: 8/02/08
Posts: 743

8/31/13 9:58:36 PM#10
Originally posted by Quizzical
Originally posted by Halandir
Originally posted by Quizzical

You can still add more CPU cores.  But that only helps if code is designed to take advantage of more CPU cores, and that gets tricky for many programs once the core count gets high enough.

 ... stuff ...

Thus you end up with what most already know: Most games are optimized for ~2 cores and 32bit OS. Separation/optimization on application level, between mem/block/socket activity and HID/GPU would make sense in many MMO's because you can leave the core-bookkeeping to the OS that way and still be effective on 2 cores.

You don't try to write software to use exactly two CPU cores and no more unless you know exactly what hardware it's going to run on.  If you can make your program scale well to 12 cores (or more), you can just do that and let the OS decide which threads to schedule when, and it will keep however many CPU cores you have busy.

But the difficulty of making the CPU code scale well to many cores depends greatly on your algorithm, and can range from trivial to impossible.  Figuring out how to break a program up into chunks that can run at the same time with little to no dependence on each other has to be done by the programmer, not an OS or compiler.  There is some work to be done by the compiler and OS in threading, but the tools are there and ready, and people just need to use them.

The common myth that games can only use two cores is just that:  a myth, and a stupid one at that.  Many games do have CPU code that scales well to many CPU cores, but sometimes you don't notice because something else is the bottleneck rather than the CPU.  I think it's perpetuated to some degree by tech sites that go out of their way to pick badly coded games for their benchmarks, as those are the games that manage to run poorly on capable hardware.

 

I think we can agree on most things. Ideally we should be able to write programs without a lot of consideration of the underlying OS/HW structure.

Sorry I wrote "~2" cores. It could as well have been "~8" cores - my point was you do not program for a set max. number of cores - but you optimize for one. (Or suffer the consequences)

Things MAY be very different in the games programming domain (I am not working in the gaming industy - I work with realtime applications and blockdevices/socket programming is my main focus.)

My remarks are targeted at the MS Windows platform and while you say the tools are "there and ready" please feel free to PM me and tell me exactly which tools you are referring to? (The C/C++ components and compiler in VS is not exactly "ready" for "fire and forget" programming, in my opinion.)

The stuff I highligted in red: My point exactly... Thats NOT an application that "scales well" - If it cant trust the underlying OS the application needs to accept and adapt to that. Enduser experience is more important than what the progammer thinks and the OS commercial said!

BTW: Sorry if I sort of drove the topic offrails. Never was my intention. While we havent reached max yet, we are getting close to physical limits. 

 

We dont need casuals in our games!!! Errm... Well we DO need casuals to fund and populate our games - But the games should be all about "hardcore" because: We dont need casuals in our games!!!
(repeat ad infinitum)

  lizardbones

Elite Member

Joined: 6/11/08
Posts: 10633

I think with my heart and move with my head.-Kongos

8/31/13 9:59:06 PM#11

Assuming this is all true, wouldn't it turn into a non-issue pretty quickly once the wall was actually reached? Even assuming that we don't find some quantum tunneling effect or whatever that gives us a lot more performance per core, couldn't this all be bypassed by better software or firmware that allows a sixteen core cpu to function as a four core cpu at the OS level? I mean, that's really the stumbling block now, if you don't write your application to take advantage of multiple cores, you have an application that runs on a single core and that's it. If the system could divide the tasks up efficiently, and then return results all in order, then the number of cores isn't really all that relevant.

For every large, complex problem, there is a simple, clear solution that also happens to be absolutely wrong.

  syntax42

Elite Member

Joined: 3/30/07
Posts: 1139

9/01/13 8:09:01 AM#12
Originally posted by Quizzical
Originally posted by Icewhite

How many years did it take Pentiums to stop appearing on bargain-basement motherboards from Joe'sBuildYerOwnCheapMachine.com?

I mean, you're basically asking a question about consumer habits, more than retailers, yes?

Hmm...took about 10 years to migrate away from 640x480 web design.

No, it's about what hardware is out there, whether people buy it or not.

I think there is a valid point there, but it wasn't framed very well.

 

The focus on lowering power right now is due to a sudden market shift towards mobile computing.  Tablets, phones, and other devices represent a large chunk of processing that Intel hasn't been a part of.  It would be a good guess to predict Intel is spending less on improving processing capability and spending more to reduce power consumption so they can get into the mobile market.

I'm not worried, though.  Between graphene and quantum computing, the possibility for dramatic improvements in processors over the next ten years is there.  It is just a matter of waiting to see who can implement it first.

  Quizzical

Guide

Joined: 12/11/08
Posts: 13388

 
OP  9/01/13 9:24:49 AM#13
Originally posted by g0m0rrah

 

 Dont we kind of bounce between the idea of single vs parallel. Isnt parallel almost always hindered by timing issues.  I thought with parallel that latency occurs due to some bits arriving at a later time, forcing a wait time on the bits that have already arrived.  I have no idea really, but I always wondered why serial seems faster than parallel when it goes to cabling and I wonder if the same problems occur with circuits and multi-processing.

  I would think that multi-processing would have become more common, why else do we have 8 core's on 1 cpu and in the server world its easy to dedicate cores to tasks. What I dont understand is why this hasnt translated to the desktop.  That is one of the main reasons I believe AMD is struggling because I think they took a gamble and thought multi-processing would be further along by this point.

 I also assume that AMD thought by this point that we would be able to leverage the power of the gpu much more easily on every day tasks.  Its funny how you have this powerful tool sitting in your computer, idle.

It depends greatly on the algorithm being used and how often and how extensively different threads need to communicate.  If you have several threads trying to operate on the same data and it needs to be kept coherent across all threads, you can easily get big problems with locking and synchronization.  If you're not careful, you can even end up with a live-lock situation where everything comes to a screeching halt.  Perhaps worse than that is a race condition in which you get the wrong answer without realizing it, and the answer depends on which threads finish their work first.

But if a program can operate where you break things up into a bunch of threads that can each work on their own data set for tens of milliseconds at a time with no communication with other threads whatsoever in that time, and when they do communicate, it consists only of passing a pointer to a different thread so that some other thread can continue with the data set, then the overhead of threading is inconsequential.  Or in extreme cases, a program can have threads that can go for minutes or hours at a time without needing to contact other threads.  Think of GIMPS, where if the only way for one thread to communicate with another was by the postal service (aka, snail mail) and having a human manually transfer the data between a computer and a piece of paper, even that wouldn't be all that big of an impediment to performance.

Leveraging a GPU is very different, and much harder.  A GPU needs very SIMD-heavy stuff, with little to no branching and massive amounts of parallelism available.  In order to really exploit a GPU, you need to be able to have many thousands of different computations going on with their own data sets, and not mattering what order the computations are done.  Computer graphics actually fits that quite nicely:  millions of pixels on a screen means millions of fragment shader invocations per frame that do not depend on each other at all.

  Quizzical

Guide

Joined: 12/11/08
Posts: 13388

 
OP  9/01/13 9:31:20 AM#14
Originally posted by Avison

An excellent post on a topic that fascinates me. Programming most intensive applications for multiple cores is usually an incredibly complicated process. Sometimes things flow logically mathematically such as a thread diverges or in order to run a new thread it needs output values from two other threads.

When talking about gaming applications we're usually limited in how indepth our multicore efficiency can get. But for OS applications and the several self contained threads running on your pc... multicore is almost a complete advantage.

Almost every developer working on any application that needs performance will go the multi-threaded route in some way or another. If it is something that obviously doesn't need to be multi-threaded than a good developer won't waste time implementing it.

 

Designing processors and their cores is a dance of logic, intent, resources, and physics. While we're limited to printing circuits on two dimensions our only route, with the materials we have, is to be more efficient with multiple cores. I'm sure everyone has heard of graphine and several other breakthroughs that might allow us to print circuits in three dimensions. If that technology hits then you can expect a resurgence of 'single core' designs for the sake of simplicity.

I'd like to restate the reason we are using multi-core cpus and systems. We've relatively reached the processing power capacity of our single core designs with the materials and designs available to us. So instead of simply building a bigger engine we're making everything more efficient so that speed is still increasing as it used to... 'relative' to the observer.

With typical games, most of the work consists of setting up which objects are going to be drawn where in a frame and then passing that along to the video card.  Only one thread can pass data to the video card, but breaking the work of what needs to be passed into as many threads as you like is fairly trivial to do, apart from a little bit of per-frame overhead such as determining where the camera will be that has to precede everything else.  Then having all of those other threads communicate with the rendering thread is pretty much a textbook case of a producer-consumer queue.  So games are fairly easy to thread to use several cores.

One general principle is that more, weaker cores will beat fewer, stronger cores if the workload scales well to more cores and the weaker cores can handle it.  That's the real reason to move to multi-core processing.  If CPU core A only offers 1/4 of the performance of its contemporary CPU core B, then core A might well get you that performance with only 1/10 of the power consumption.  Ten of CPU core A thus gets you vastly more total performance than one of CPU core B with the same power consumption--but only if your workload scales well to many cores.

  Quizzical

Guide

Joined: 12/11/08
Posts: 13388

 
OP  9/01/13 9:40:24 AM#15
Originally posted by Halandir
Originally posted by Quizzical
Originally posted by Halandir
Originally posted by Quizzical

You can still add more CPU cores.  But that only helps if code is designed to take advantage of more CPU cores, and that gets tricky for many programs once the core count gets high enough.

 ... stuff ...

Thus you end up with what most already know: Most games are optimized for ~2 cores and 32bit OS. Separation/optimization on application level, between mem/block/socket activity and HID/GPU would make sense in many MMO's because you can leave the core-bookkeeping to the OS that way and still be effective on 2 cores.

You don't try to write software to use exactly two CPU cores and no more unless you know exactly what hardware it's going to run on.  If you can make your program scale well to 12 cores (or more), you can just do that and let the OS decide which threads to schedule when, and it will keep however many CPU cores you have busy.

But the difficulty of making the CPU code scale well to many cores depends greatly on your algorithm, and can range from trivial to impossible.  Figuring out how to break a program up into chunks that can run at the same time with little to no dependence on each other has to be done by the programmer, not an OS or compiler.  There is some work to be done by the compiler and OS in threading, but the tools are there and ready, and people just need to use them.

The common myth that games can only use two cores is just that:  a myth, and a stupid one at that.  Many games do have CPU code that scales well to many CPU cores, but sometimes you don't notice because something else is the bottleneck rather than the CPU.  I think it's perpetuated to some degree by tech sites that go out of their way to pick badly coded games for their benchmarks, as those are the games that manage to run poorly on capable hardware.

 

I think we can agree on most things. Ideally we should be able to write programs without a lot of consideration of the underlying OS/HW structure.

Sorry I wrote "~2" cores. It could as well have been "~8" cores - my point was you do not program for a set max. number of cores - but you optimize for one. (Or suffer the consequences)

Things MAY be very different in the games programming domain (I am not working in the gaming industy - I work with realtime applications and blockdevices/socket programming is my main focus.)

My remarks are targeted at the MS Windows platform and while you say the tools are "there and ready" please feel free to PM me and tell me exactly which tools you are referring to? (The C/C++ components and compiler in VS is not exactly "ready" for "fire and forget" programming, in my opinion.)

The stuff I highligted in red: My point exactly... Thats NOT an application that "scales well" - If it cant trust the underlying OS the application needs to accept and adapt to that. Enduser experience is more important than what the progammer thinks and the OS commercial said!

BTW: Sorry if I sort of drove the topic offrails. Never was my intention. While we havent reached max yet, we are getting close to physical limits. 

Whether the tools to scale well to several cores are there and ready to be used depends tremendously on what you need to do.  For games, it works fine.  For things that are harder to thread, it might well still be problematic.  In the case of games, there's only so much work to be done in a given frame, and so long as you're keeping the GPU busy and all of the CPU cores busy (until the CPU work for that frame is done), it doesn't matter that much which order stuff gets processed in.  Thus, you can break the CPU work into a bunch of threads (with an intelligently chosen number based on how many CPU cores the system has), let the OS worry about which thread to schedule on which core when, and it just works.  (Incidentally, my personal experience with this is with Java and Windows 7; I've ran the same code on a Core i7 quad core and an AMD E-350 dual core.)

Now, there are many things that are much harder to scale well to many cores.  And there, you could argue that the tools to do it properly really aren't ready.  Or that they might never be ready, because there are some things that just can't be done in hardware very well.  Maybe your experience is more in dealing with those things.

  Quizzical

Guide

Joined: 12/11/08
Posts: 13388

 
OP  9/01/13 9:52:03 AM#16
Originally posted by syntax42
Originally posted by Quizzical
Originally posted by Icewhite

How many years did it take Pentiums to stop appearing on bargain-basement motherboards from Joe'sBuildYerOwnCheapMachine.com?

I mean, you're basically asking a question about consumer habits, more than retailers, yes?

Hmm...took about 10 years to migrate away from 640x480 web design.

No, it's about what hardware is out there, whether people buy it or not.

I think there is a valid point there, but it wasn't framed very well.

 

The focus on lowering power right now is due to a sudden market shift towards mobile computing.  Tablets, phones, and other devices represent a large chunk of processing that Intel hasn't been a part of.  It would be a good guess to predict Intel is spending less on improving processing capability and spending more to reduce power consumption so they can get into the mobile market.

I'm not worried, though.  Between graphene and quantum computing, the possibility for dramatic improvements in processors over the next ten years is there.  It is just a matter of waiting to see who can implement it first.

It's not just mobile computing.  Any processors that are going to be kept running around the clock will have a considerable electrical bill as a result (and sometimes a huge cooling bill, too), and this can easily be greater over the years than the cost of buying the CPU up front.  If you're selling a processor that is identical to your competitor's except that it will cost $200 less in electricity and cooling over its lifetime, then you can charge $100 more for it and still seriously claim that it's cheaper.  That's a huge deal to data centers, and often to other servers.  Power consumption is also a huge deal in laptops.

Furthermore, the focus on power consumption is partially because we can make chips that burn so much power than they used to.  Twenty years ago, the difference between carefully optimizing for power consumption and simply not caring about power consumption might have been the difference between a chip that put out 2 W and one that used 5 W.  Today, it can be the difference between a 50 W chip and a 200 W chip.  The AMD FX-9590 has a ton of power-saving features, and still has a TDP of 220 W.

Quantum computing is not going to be a "now everything is faster" sort of thing.  If it pans out, certain problems that classical computers are terrible at will suddenly be fast on a quantum computer.  But quantum computers will still trail far behind classical computers in many, many things.  I don't see quantum computers ever being relevant to gaming.

  Mendel

Elite Member

Joined: 7/22/11
Posts: 632

9/01/13 10:56:13 AM#17

A very interesting discussion, everyone.

--- On Parallel Processing

I'm definitely in the 'algorithm is everything' camp when it comes to parallel processing.  Some things can be broken into smaller, independent streams of code capable of running simultaneously on multiple processors, and some things simply can't.   The performance of an individual processor core will be important for a considerable time to come, because some tasks will remain serialized.

Until there is a substantial (revolutionary) way to understand and develop tasks, algorithms will determine which tasks will benefit from parallel processing, and how efficient the parallel process can be.

--- On Single Core Processing Limits

I do feel that the hardware is at (or close to) its practical performance limits.  I expect that the cost of improving performance on a single core is growing exponentially, and there is little or no chance to re-coup the costs of pushing the conventional materials any further.  There may be some advances to come due to advances in material sciences, but no one can predict if these technologies can be cost effective, either.

I don't know that quantum operations are within anyone's lifespan.  There may be early quantum computers in 25 years, but without equally revolutionary breakthroughs in mathematics and computing, these solutions would only give a boost to a very small number of potential applications.  I'd guess a time frame of 100 to 125 years to be far more accurate for quantum computing to have any significant impact at the consumer level.

Logic, my dear, merely enables one to be wrong with great authority.

  muchavez

Novice Member

Joined: 10/17/04
Posts: 208

9/01/13 11:06:23 AM#18

http://www.technologyreview.com/view/518426/how-to-save-the-troubled-graphene-transistor/

The smart people at MIT just figured out how to switch graphine from 0 to 1, which was the holdup for the past 10 or so years.  Now they have a road map to create the first graphine processor which can clock around 400 GHz (my guess is you will see the first graphine processor in the next 10-15 years.  With a cpu clocking that high, will we even need a graphics card anymore?  Will be interesting to see how this changes everything.

  Ridelynn

Elite Member

Joined: 12/19/10
Posts: 3393

9/01/13 11:28:53 AM#19

Meh,

Processors as we know them now may be hitting their limit. They can probably get down to <10nm, but probably not <5nm. Smaller dies don't necessarily translate to better IPC, but they give designers flexibility to get them. That, combined with the Ghz wall - we've only rarely seen chips sold at stock 4.0Ghz (AMD just pushed their 9590 at 4.7/5.0, but it's pretty limited availability), and while we've seen some samples that can go as high as 6 and 7 Ghz, nothing commercially can hang there, so we may see commercial stock speeds get upwards of 5-6Ghz, but probably not much past that.

So yeah, using our existing methods, we're about done with IPC. There are probably a few more tricks engineers can do with OOOE and predictive branching and caching and whatnot, but none of those will be huge gamechangers, since we'll still be stuck with the same silicon limits mentioned in the first paragraph.

However;

There are other technologies in the works.

Specialized processors are coming back in vogue - used to be the CPU and FPU were two different chips on a motherboard. Now we are seeing GPUs starting to be used for algorithms where SIMD really helps. We see specialized instructions for crypto. Add in things like Quantum, which are situational as well. Once some of these highly specialized processors start to become standard enough that routine compilers can just assume they will be present, we'll see software able to speed up more, even without an increase in the generic CPU IPC.

And there could always be another process breakthrough. Graphene is one, light-driven fiberoptic based CPU may be another - and there are hundreds of other ideas I haven't even heard of and couldn't even imagine.

And even if those technologies are a long way away:

I'm not worried. Sure, there are some computer processes that can use all the CPU power available and then some. But for my personal use, I don't use 1/10th of what I have available in my 5 year old computer now. Faster IPC is nice, and it allows for breakthroughs in software, but the software I use now sits around waiting on me most of the time, not vice versa.

  Quizzical

Guide

Joined: 12/11/08
Posts: 13388

 
OP  9/01/13 11:45:35 AM#20

One thing I'd like to point out is that, for years, we got both more cores and faster cores.  Moving from Pentium D to Conroe to Penryn to Bloomfield to Lynnfield to Clarkdale to Sandy Bridge, we got faster per-core performance every step of the way at stock speeds, and also if you compare overclock versus overclock with only the exception of Bloomfield basically tying Lynnfield since the cores were basically identical and on the same process node.

The fastest single-core x86 processor ever made might be the AMD Sempron 150, basically a 2.9 GHz single-core version of an Athlon II (since it was basically an Athlon II X2 where one core didn't work).  Today, that would get blown apart in single-threaded performance, not just by the latest and greatest Core i7, but also by recent lower end Intel Pentium and AMD A4 chips.  As we moved from two cores to four, the trend again was toward both more cores and faster cores simultaneously.

But that seems to have come to a halt.  We can still make CPUs with more cores, and AMD is still improving per-core performance, though that only serves to close the gap somewhat with Intel.  (I expect that Kaveri will be to Haswell as Phenom II was to Bloomfield:  slower, but respectable, and not a compete blowout as we saw with Phenom I versus Core 2 Quad or Bulldozer versus Sandy Bridge.)  A few years ago, AMD said that they would improve their CPU performance by 10%-15% per year, and that that would be enough to keep pace with Intel.  At the time, that seemed very pessimistic as it trailed far behind historical gains, but in retrospect, it seems too optimistic about the gains that either company would be able to deliver.

2 Pages 1 2 » Search