AMD Open Sources the AMD Performance Library
bluephone writes "Today AMD announced that they're now opening the source to the AMD Performance Library (APL) under the Apache license. The newly opened code is now hosted at SourceForge (the corporate overlord of Slashdot) under its new name, Framewave. Phoronix says, "The AMD Performance Library / Framewave covers a multitude of operations from simple math operations to media processing and optimizations for multi-core environments." No word as to if it does your laundry. The SourceForge page says that while Framewave is 'sponsored' by AMD, it is "very much an open-source venture. While AMD will continue to participate in and contribute to the project, third-party developers are welcome and encouraged to implement all or part of the code base and/or to create derivative works." Being Apache licensed, it's quite open, so this doesn't seem to be mere lip service."
OMG First post!
After all, I am strangely colored.
.."AMD Processor Driver" that I see installed on so many customers' machines? I roll my eyes every time I see it
Four comments and about 7 moderator points have been used?!?! Cool it guys!
:)
Now use one Offtopic on me
My UID is prime. Hah!
Thankyoucomeagain.
"The fight for freedom has only just begun." - Geert Wilders
I don't know squat about the performance lib, but the graphics stuff, now *that* could be interesting if it helps the open-source graphics driver effort.
Could it be they are offering this framework due to the ABYSMAL performance of their new Phenom processors? And will it be enough to save them, now that their stock has taken a sharp nosedive?
So I read TFAs and followed up on sourceforge, but I still don't really grasp what it's supposed to do. It does math routines? Displays JPGs? Does it do anything if I'm running an Intel chip?
It sounds more like a clusterfuck of marketing spew more than an actual library.
Comment on your sig: Since when have facts, logic, and rationality been part of Microsoft's management policies?
For example, things are so bad with Windows Vista that InfoWorld, one of the most respected IT publications, is running a Save Windows XP campaign.
Actually NOT. That is not how dynamic recompliation works.
CISC instructions, that are not fully implemented in microcode, get dynamically recomplied into other intructions. Microcode is HOW those instructions get implemented.
Also: Jump/Load/Store instructions do go through microcode. All memory accesses do. It makes things faster and simpler.
Microcode is HOW CPU instructions get implemented. ADD is implemented in microcode, becuase it has to interface the data queues with the ALU.
The way Intel Does it, is that The microcode gets copied from a disk file, and then gets loaded into a special place on the CPU, that stores bug-fixed instructions. ROM does not contain microinstruction fixes, except on Intel Boards. (It does not get updated often enough.)
The CPU driver handles Multiple CPUs. ( Its called the HAL ). Cool and Quiet/ACPI is also handled here.
Refrence: http://support.microsoft.com/kb/234558
and
Refrence: http://en.wikipedia.org/wiki/Microcode.
I cannot believe that I brough this up, and only got a 1, while others, in just adding a tiny explaination get a 4 or 5. PickyWicky
This is old news. My submission "APL under APL" was rejected...
If you love MACROS and variablesWithIdentifiersAroundThisSizeLong look no further.
I will stick to liboil, good old C and understandable by mere mortals.
I hope Fedora, Ubuntu, Suse, and Gentoo will come with this library!
It's good to see that they have overcome their open source constipation.
-- Ed Avis ed@membled.com
Read Bill Weinberg's post on Linux.com about why we shouldn't use open source as a verb. It is a fantastically well written piece and I recommend it to anyone with a passing interest in FOSS, and or anyone who has a basic grasp of the English language. OPEN SOURCE IS NOT A VERB thanyouverymuch.
Thanks, but neither my post nor the grandparent used 'open source' as a verb.
-- Ed Avis ed@membled.com
Anyone knows how it compares with the Intel Performance libraries ? and especially how good IPL is on an AMD processor and vice versa ?
You seem to be misreading him; he isn't arguing that "open source" should not be used as a verb, but that it shouldn't be used as a verb meaning "to make software available under an open source license". His argument is that something is not "real" open source software unless it has a thriving community around it, and therefore people should not say things like "we open sourced this code" when they have merely released the code, rather than creating a community.
It's a nice thought, but he's basically completely wrong, because his highly restrictive definition does not match the way the term "open source" is actually used in the real world. Most people who actually use it do not use popularity as a criterion. If you accept that fact, his argument collapses rather.
AMD Open Sources the AMD Performance Library ...and it looks strangely familiar. Funnily enough, the licence doesn't.
It has been said by some other developers that the malloc/fwMalloc is being used from within the actual processing functions.
Memory allocation calls are expensive performance-wise. Please consider to create a few other house-keeping calls to be used before using the actual processing functions:
The house-keeping calls would be responsible for:
1)creating an object_pool which is a memory pool that can hold only objects of the same type as specified by ElementType
allocating the memory in the respective memory pool to hold an initial number of same-type objects
2)The actual number of pools to initially create would map to the number of types used in the library.
The actual number of objects to create in each type would depend on the average maximum number of elements used in each of the framewave API calls.
Here are the types I have identified for candidate pools:
Fw16s Fw16sc Fw16u Fw32f Fw32fc Fw32s Fw32sc Fw32u Fw64f Fw64fc Fw64s Fw64sc Fw64u Fw8s Fw8u
FwStatus FwLibraryVersion FwRoundMode FwWinType FwBool FwCmpOp FwCpuType FwHintAlgorithm
3)Single-Threaded and Multi-threaded should follow the same strategy because for each thread there should be a unique pools of memory for all of the above types anyways.
To make all of this easier, one could write a new class/template holding all the above with your initial respective pool sizes and just pass this one higher-level object to all the other api's and grab the respective thread's pools/elements when you need them with indirection.
The c++ memory pool api already exists:
http://www.boost.org/libs/pool/doc/index.html
I do hope this helps.
AMD happens to place the north bridge on the CPU die.