Reverse-engineered KNI Documentation 66
Clive Turvey has continued his investigation into KNI, and
has documented
the instructions he has found so far. MMX coders will be
happy to see that KNI contains a 1-cycle shuffle instruction,
like Altivec does, but unlike MMX. As expected
it has some instructions specifically for 3D (1/x and 1/sqrt(x)).
Update: 02/24 12:11 by S : As reader Christopher Thomas points out,
Intel has released a manual that includes a functional
description of KNI. But I can't find any instruction timings in it.
It weighs a hefty 5.5Mb.
KNI, too little too late (Score:1)
Already bought two PIIIs (Score:1)
PDG--"I don't like the Prozac, the Prozac likes me"
Whooosh- (Score:1)
Not much use in the kernel, I'm afraid. (Score:1)
Then why... (Score:1)
Daniel
Already bought two PIIIs (Score:1)
PDG--"I don't like the Prozac, the Prozac likes me"
Ok this is cool...but (Score:1)
NaTaS
natas777@geocities.com
The SSE instruction set is publically available. (Score:1)
Not quite... (Was: What's the point?) (Score:1)
used because all the rendering is passed
off to the graphics card."
Is incorrect. All a 3d accelerator card does is speed up the DISPLAY of 3d objects, the processor still has to figure out where to PUT those objects, hence the usefulness of KNI (or SIMD, as Intel wants to call it, or even AMD's 3dNow.)
See below for a more in-depth explanation.
As for 2d? Again, the only thing the card does is DISPLAY pictures, it does not do ANY calculations on where anything goes. In your standard Windowing OS, the processor has to figure out what is going to be displayed, and where it is going to go. After it figures this all out, it passes it on to the video card, which displays it. The difference between accelerated (2d) and non-accelerated is that on a non-accelerated, the processor has to tell it where every pixel goes, whereas an accelerated card can have "draw box", "put this text in box" passed to it instead.
3D explanation:
There are four steps in displaying a real-time 3d scene (I'll use a first person shooter for examples):
1. Process the scene for objects (walls, cieling, floor, polygons for bad guys)
2. Plot exactly where those objects are going to be, including removing hidden lines
3. Apply textures and lightsourcing to polygons
4. Display it on the monitor.
In a 3d-accelerated computer, the accelerator does steps 3 and 4. That leaves the processor to figure out where everything goes (which is where about 50% of the processing power is needed.)
This is why a P2-450 without 3d accelerator is approximately equal to a P-200MMX with one. The P2 is about twice as fast, so it does the same.
On VERY, VERY high end video cards ($2000+ workstation OpenGL cards) they can also do step 2, and THAT would take the hard work away from the processor.
Multi-processing celery? Aww HELL YEAH! (Score:1)
- - - - - - - - - - - - - - - - -
kni cool (Score:1)
come again? (Score:1)
Coding==fun (Score:1)
Playing games at a fast speed is fun..
but coding your engine to go 1frame/sec faster then someone else is funnier...
Hell.. next they place WHOLE GAMES into 1 single processor-instruction..
Ok this is cool...but (Score:1)
Geometry acceleration. (Score:1)
Geometry acceleration will almost certainly start showing up by 1H00, when 0.18 is in full swing and another round of cards show up, and may be showing up in 2H99 with the current round of new cards. Which you believe depends on the veracity of the rumour mill and the competence of the card manufacturers.
Putting geometry acceleration on the cards is a Good Thing from the graphics card manufacturer's point of view. This frees up the processor in CPU-limited cases, and frees up the bus if some of your models can stay resident on the card and just be transformed instead of reloaded. Card manufacturers have stated for a while that they want to put geometry acceleration on cards, and since the middle of last year have been saying that it will show up Real Soon Now (tm). Whichever manufacturers _do_ manage to get good geometry acceleration out there with good drivers will decimate the members of the competition who put out cards without acceleration, at least in the short term. It is in their interests to implement this as quickly as possible.
Now, the rumour mill. Rumours include, but are not limited to:
They have the beginnings of this on the G200 already. Two Matrox cards are rumoured to be ready to ship, but tied up in NEC's fab lines as they work on the Dreamcast. One is the G400, rumoured to be a pair of G200s at 0.25 micron. One is the G300, which is an unknown quantity.
This wouldn't hurt sales of their high-end cards, which are multi-chip, have vast amouns of RAM, and are in general designed to be better cards than anything on the consumer end.
As opposed to just being a shrink of the TNT to 0.25 micron. I'm doubtful of this one.
Take your pick, but it wouldn't surprise me if at least one of these turned out to be true, and these aren't the only cards coming out this year.
This also doesn't address the fact that for doing certain things ( wieghted meshes, physics,...) a geometry accellerator isn't going to help.
Quite true. However, there is enough geometry grunt work being done in most cases that a geometry accelerator would certainly help.
Milti-processing celery? (Score:1)
MMX and DCT (Score:1)
That's the problem though, when MMX first came out it was the same old thing-it was going to be real useful whenever the authors decide to use it-Now they are going to KNI-and again, we will have to wait and see if our money will be well spent. Although this time around I think it is slightly different than MMX in the way that people have their eyes open, and hopefully realize that it will be some time before there is software available to use KNI to it's max potential. Most people don't realize that KNI and MMX won't enhance their current apps.
The SSE instruction set is publically available. (Score:1)
It most certainly would, which is why the full instruction set manual is up on their web page in plain view for anyone who wants to look at it.
Ideally they'd have released it before the PIII launch, but now that the PIII has been officially released, it's definitely publically available.
The URL is http://developer.intel.com/de sign/pentiumiii/manuals/ [intel.com].
KNI, too little too late (Score:1)
What's the point? (Score:1)
interested in performance will probably
invest in a 3D accelerator card anyway.
So the KNI instructions won't ever get
used because all the rendering is passed
off to the graphics card.
And for the 2D stuff, everyone already
HAS graphics acceleration anyway. Since
when is the main system CPU doing any
multimedia calculations in a modern
high-end PC? (Except for video decoding)
It seems to me that the only time these
KNI instructions would help speed up a
3D app would be when you are rendering
in non-realtime, such as when you use
POV to raytrace an image. But that
certainly doesn't seem to be the market
Intel is aiming for.
Someone please correct me if I have made
some mistake in my brief analysis.
kni cool (Score:1)
run to your local dealer..
Already bought two PIIIs (Score:1)
I assure you I am very biased but that is only because I know I am right
Ok this is cool...but (Score:1)
for the 3DNow instruction set - Unfortunately I am not skilled enough to do anything constructive ( like making a 3DNow asm target....)
They were quite nice about it, and not at all hostile to Linux -they'd presumably be only too happy for someone to do something about it,
it could only increase their sales...
Here are the relevant links:
Dear David,
For the 3Dnow code instructions, check the Data book:
http://www.amd.com/K6/k6docs/index.html
For general information on 3Dnow, consult the following site:
http://www.amd.com/products/cpg/3dnow/index.htm
Milti-processing celery? (Score:1)
Already bought two PIIIs (Score:1)
PDG--"I don't like the Prozac, the Prozac likes me"
Mainly correct. (Score:1)
some mistake in my brief analysis.
Re. 3D graphics, you are most certainly correct. As of roughly 2H99, enough 3D graphics cards with geometry acceleration will exist to make SSE useless to the gamers who would otherwise have cared about it.
Re. 2D graphics, the situation here is a bit odder. 2D acceleration has existed for a while, but most image processing programs use software filtering for better control over the output. Filtering is one thing that AltiVec will be good at, so I expect to see a horde of Mac users proclaiming that the G4 is the ultimate in computing because it runs Photoshop five times faster than a PII. If your main use of your computer is image processing in Photoshop, I guess that's a good point. If your main use is Quake, then it will be less relevant.
I've been dabbling in rendering and ray-tracing for a while, but would be more interested in a cheap 8-way SMP system than a SSE system for the time being (regrettably, these don't seem to exist).
What's the point? (Score:1)
Already bought two PIIIs (Score:1)
PDG--"I don't like the Prozac, the Prozac likes me"
What's the point? (Score:1)
I'm considering applying for a job doing
OpenGL programming. Anyway, any card which
implements OpenGL will do the coordinate
transformations as well as the actual
rendering.
Perhaps the KNI was a good idea which is
about to be eclipsed by the next generation
of 3D video cards.
BTW, the Vodoo2 chipset does OpenGL and
Direct3D as well as 3Dfx.