'Killer' Network Card Actually Reduces Latency
fatduck writes "HardOCP has published a review of the KillerNIC network card from Bigfoot Networks. The piece examines benchmarks of the product in online gaming and a number of user experiences. The product features a 'Network Processing Unit' or NPU, among other acronyms, which promise to drastically reduce latency in online games. Too good to be true? The card also sports a hefty price tag of $250." From the article: "The Killer NIC does exactly what it is advertised to do. It will lower your pings and very likely give you marginally better framerates in real world gaming scenarios. The Killer NIC is not for everyone as it is extremely expensive in this day and age of "free" onboard NICs. There are very likely other upgrades you can make to your computer for the same investment that will give you more in return. Some gamers will see a benefit while others do not. Hardcore deathmatchers are likely to feel the Killer NIC advantages while the middle-of-the road player will not be fine tuned enough to benefit from the experience. Certainly though, the hardcore online gamer is exactly who this product is targeted at."
Killer network cards have been around for so long, there's actually a Localtalk version here:
http://www.fiftythree.org/etherkiller/
I have a friend who works at a game studio who had their IT guy perform several tests to see if it did anything... chat log:
> killer NIC. bad.
> file transfers = 1/4 of the speed of a normal NIC
> the drivers are fucking TERRIBLE to install/uninstall/update, you have to reboot. then it'll let you do whate you need to do. then reboot AGAIN...
> and when it does start working, there is literally no difference in either framerate or ping, even on the games they say it specifically improves
Where's the comparison between different onboard gigabit chipsets? (eg Broadcom, nForce, etc.) Where's the comparison between different PCI, PCI-X, and PCI Expressgigabit NICs?
If applicable, what are the settings for the onboard NICs being tested? Many have options for various CPU offload settings and optimizations for throughput or CPU usage.
Until we see these, how can we be sure if a high-end regular PCI-e NIC won't work just as well?
I suspect it will produce a noticeable improvement in situations where your computer is running heavily loaded. If you're playing a game that keeps your cpu pegged or near most of the time, your latency will be noticeably higher because of that (using the typical network card, which is a bit 'winmodemish' in that it's relying on the cpu to do much of its work.) So having a card that does all the network processing itself, without relying on the CPU, would avoid that slowdown.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
Business Development Guy: We need a new product. Something... niche. Something overpriced. I know! Don't we still have a bunch of boxes of old network cards?
Hardware Engineer: Uh, yeah. We were about to offload them on eBay to make room in our closet...
Business Development Guy: No! Lets tack on some parts from China and sell them! We'll call it, hmm.. the Killer NIC! Since no one wants to buy NIC cards, we'll overprice them for no apparent reason! $250 a pop!
* Hardware Engineer bashes his forehead on the desk.
Hardware Engineer: You've got to be kidding me. Isn't that, like, fraud?
Business Development Guy: Not at all. We'll just never say how it works, only that it works. The processor will be for like, decorative purposes. Consumers love that kind of stuff!
It requires a fiber-optic cable because it needs to be able to send the photons in a superposition of states. By the time your program gets around to sending a packet, the photons are most of the way there and merely need to collapse into the same state as the packet. The naysayers who claim that the card can't actually improve latency are only thinking in terms of classical physics.
Badass Resumes
25 years and counting, they still haven't caught me. :-)
If you believe everything you read, you'd better not read. - Japanese proverb
How can a NIC decrease the latency in any noticable way?
You'd be surprised what marketers can do.
I wonder if I use bold in my signature, people will notice my posts.
Anandtech has a much better review here: Linky: http://www.anandtech.com/cpuchipsets/showdoc.aspx? i=2865
I don't see any benchmarks in that article. Here are some,, and they don't make the thing look all that impressive.
The only benefit in this thing, apparently, is that, for games which make too many "select()" polls, there's a faster no-data return. This is really a bug in the game, which ought to be multi-threaded by now. As games are revised for multi-core systems, this problem had better go away. In fact, it probably will go away in Vista, which has a multithreaded network stack.
Clearly you didn't read the review. The card works.
Maybe you shouldn't accept everything you read on wikipedia as scientific fact.
Badass Resumes
These kinds of "professional" gamers could use a fancy NIC with lower times. Or if your Richie Rich and you need some extras for your already pimped out gaming rig.
Yeah, you definitely need to have a Cisco router with Monster Cable CAT 6 running between it and your computer to make full use of Gigabit. Anything less and you're dropping packet fidelity through crosstalk line expansion. Not to mention the undervoltage latencies.
From TFA:
That is just idiotic.
If you aren't going to do it right, then you are doing it WRONG. So it did NOT "reflect what would happen in real world gaming situations".
Again, you script it. You do not play it.
I'll give the KillerNIC people this, they certainly know how to pick their suckers.
Seriously. They didn't even bring their own PC's? They used the "testing machines" provided for them. And they think this has anything to do with "real world" performance?
A far, far better test, even under these biased conditions, would have been for them to use their own PC's. It cannot be that difficult to swap a NIC, can it?
In a blind taste test, more people preferred Coke over the Pepsi that I had previously pissed in.
For some strange reason, all I ever see in these "reviews" are the KillerNIC people insisting that the games be run on THEIR machines. And people who are "reviewing" it accepting this strange requirement. And not even scripting it so that they can compare it with their home machines.
A better design would be to have networked data in well-defined regions which the card can DMA directly out of and into. The PCI bus can handle a 4K transfer as an atomic operation on a single channel, so a 4 channel PCI card can simultaneously send and receive streams of jumbo packets without requiring any CPU intervention. The driver would merely need to be passed two lists of physical page pointers - one for inputs, one for outputs - for each of the open connections and to pass back signals from the board that an entire packet and/or message had been uploaded for a given connection.
(Jumbo packets can go up to 8K, and you can do 8K over two PCI channels, so that's a good unit to be working with.)
The next improvement that can be made to such a system is to improve the buffering. The network will be slower than the computer, almost always, so being able to queue up multiple packets for sending is a Good Thing. Filtering out packets that have not been sent but are no longer worth sending can be done entirely in parallel and does not require anything extra at the end of the pipeline. Not all packets are of equal value, though. You want to deliver the information in the order that will give the best possible benefit - which may not be the order in which the program generates the traffic. Hierarchical Fair Service Curve, Class Based Queueing, and a bunch of other similar techniques, have been developed to fix exactly that sort of problem.
If the ISPs would stop being so bloody stupid, you could also enable protocols such as your basic multicasting (for your UDP stuff) and Scalable Reliable Multicast (for the stuff that needs to reliably get through). That hacks, slashes, butchers and roasts (with just a hint of parsley) problems associated with sending identical state information to multiple end-points.
Bear in mind that Myrinet, Dolphinics, and a bunch of other vendors, use essentially the above mechanisms already and are achieving latencies in the region of 2.5 - 3 microseconds. I say essentially, because I'm not convinced they've optimized quite to the degree I'm suggesting - reliable, scalable multicast RDMA isn't something you'll see a lot of even at a supercomputer fair. True, you're not getting that kind of latency over the Internet whatever you do, but if you can achieve a hard real-time guarantee of 3 microsecond delivery in a LAN party, you WILL notice a difference. At the very least, in the door price, which will now be expressed in exponential notation to fit on the door.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
If you see this and ponder buying this card for your game servers first try optimizing the Linux kernel. 1000 Hz ticks, big kernel lock preemption and other latency patches actually does wonders to ping times (and I do not mean ICMP echo or similar but ping packets answered by the game) and latency.
Many games have their own interesting capabilities for performance tuning. For instance Counter Strike 1.6 has the -pingboost setting which will switch between select() and alert() syscalls (10 ms reduction) or processing a frame for every packet. Other games have similar tuning options that will enhance performance. Then there's also tuning your network settings.
By the way, as far as I remember this Killer NIC is just some kind of offload engine. How *exactly* does this increase performance when most game specific packets are simple UDP packets that performance-wise are not as demanding as TCP packets (less checksums, no window scaling and other options easily tunable etc.)?
:/- spoon(_).
Aha, found a better source with some real info on this thing. Here.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
In all the "reviews" of this that get posted here, I notice a few recurring items.
One of the most interesting to me is that they want the "gamers" to test the NIC as part of their entire box. But the real gamers would already have a box built to their specs that they were familiar with
Yet the "gamers" never seem to insist that they be allowed to compare the KillerNIC in their own box, against their existing NIC. And if they're serious gamers, they've already spent money replacing the on-board NIC if their motherboard came with it.
Kind of like if a tire company wants you to like new tires, but they won't let you drive them on your own car. You have to use their car. And you have to compare it to a different car that they have without the tires. And people accept that.
Under those conditions, I can show you improved ping times using nothing more than cool stickers for your case.
This is an "emperor with no clothes" thing - if you can't tell the difference, you must not be an experienced gamer. Since I'm an experienced gamer, I can tell the difference. HORSE PUCKY, boy!
The $500 shoes worn by the professional will not be the same as the $500 shoes purchased by the average person. For one thing, the professional is paying for the technology and customization. The average person is paying for the marketing and endorsements.
That being said, the professional would NOT compare two shoes provided by a shoe company and "tested" on their own track.
S/He would compare them to his/her CURRENT favourite shoes on his/her current training track.
And that is where every single one of these KillerNIC "reviews" fails. It is not that difficult to swap a NIC. Yet the "testing machines" are always different. And none of the "reviewers" seem to be able to script a game. Or setup a test network with a test game server.
The "professional" in this case would setup a test network, with a test game server and a sniffer to see what is happening "on the wire" and script the game on his/her favourite machine with his/her current NIC.
Then the "professional" would swap the NIC's and re-set everything and run the script to see what difference/improvements there were.
It's not that difficult and it's not that expensive and yet not a single "review" of this "KillerNIC" seems to be able to do that.
Sure, you can pay $500 for shoes that were hand stitched by virgins under the light of a full moon with thread blessed by the Pope. And they may perform better than this other pair of shoes I'll give you to run in.
But in the end, you'd still be paying for the marketing of un-tested technology.
You're wrong on somethings..
i to_doc/qos.htm
1) bunch of blah and stuff about memory. Since your explanation is memory->application->CPU->kernel memory->protocol stack->CPU memory->NIC driver->bus (basically, it was hard to follow with all the fud), you obviously have no idea how an OS works (I can't think of any modern, common OS's that have such a path). None of this happens as you describe, they are all parts, but the flow is nothing like you describe. See LKML for 2.6 on network programming if you want to see how this works on Linux, which is relatively transparent http://lkml.org/lkml/2005/5/17/78 also you can look at BSD.
2) The PCI Bus is irrelevant for gigabit ethernet (which is about the only network controller commonly in production, legacy stuff like 10/100 is more common- but is almost out of production) and for faster types (10GE or myrinet or infiniband), totally irrelevant. The 32bit PCI bus limit is about at gigabit speeds, and it is shared with everything else on the PCI bus- therefore suboptimal:
http://www.codepedia.com/1/PCI+BUS
PCI-X and gigabit controllers directly off the Controller chipsets is how networking is mostly done now.
3) blah blah, network slower than computers (ridiculous depends on the network and computer exclusively- in consumer computers it swings in a pendulum, when 100Mb came out most of the stuff in the PC couldn't keep up- it was faster to install over the network than from CD ROM because the CD drive was slower, it is going through that again with gigabit- most consumer PCs disk systems can't even approach filling gigabit). Then some conflation about what QoS, and policing can do... QoS only helps if the pipe is full:
http://en.wikipedia.org/wiki/Quality_of_service
or
http://www.cisco.com/univercd/cc/td/doc/cisintwk/
4) ISP and stupidity. ISP's may or may not be stupid. They are driven by market forces and the market force is people don't currently want to pay for a tiered service class internet. When they do, they will offer it. Technically it has been feasible for years. Read NANOG mailing list, you will see they are not stupid, but instead are in a low margin business.
5) blah blah blah, microsecond delay, destinguishable from millisecond via a consumer computer with a common OS by a person?? hahahahah. not without a measuring device. It is possible with enough training (I suppose musicians can). Since you can buy commodity off the shelf lan gear that will turn in sub millisecond delay, I don't think spending the extra-money on low microsecond delay will help
Bunch of pseudo-science modded up on Slash again...
Oh and Jumbo FRAMES are commonly 9000B in size (although the term can refer to anything bigger than 1500B:
http://sd.wareonearth.com/~phil/net/jumbo/
or 9K on cisco:
http://www.cisco.com/warp/public/473/148.html
This is an "emperor with no clothes" thing - if you can't tell the difference, you must not be an experienced gamer. Since I'm an experienced gamer, I can tell the difference. HORSE PUCKY, boy!
Naw, latency is an easily measured and quantified number and evidently this card does lower your latency somewhat.
How much that "somewhat" is noticeable is debatable. For those spending $bucks a month for high-speed internet for their $buckbucksbucks gaming rig, a crappy NIC is going to be rather bothersome. Go talk to a rabid "knife-makes-you-run-faster" CounterStrike player and ask him about the importance of latency.
But, for the rest of us, a NIC isn't really a bottleneck and onboard/generic PCI NICs do just fine. It's not "noticeable" enough.
Think of it as "online gamer viagra" - lower your ping by 5 ms!
DATABASE WOW WOW
Back in the heyday of Quake II, me and a friend who made the Quake Superheroes and Quake Superheroes II mods put in a superpower that would (ostensibly) reduce your ping time, using some kind of technobabble handwaving. Everyone was convinced that it worked, too, because when you used it, the ping times listed in the player screen would indeed be lower for you!
:) I don't know if anyone ever caught on, but it was funny watching people argue over whether you should take a "real" superpower like flying or teleportation, or try to improve your ping :)
What almost no one knew was that the mod API allowed you to simply edit those values on the fly.
"Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased