Nice render tree! Please take notes from XSI (Autodesk Softimage) render tree editor since it is the king of Shader "tree" editors in my eye.
All this C++ content is good stuff Charles, it seemed like such a desirable conference to go to, I'm slightly envious:P.
@Charles:Oh yea the bubbles, any matrix-like power surges along the geometry is all cool so long as its mainly stationary; that wobble on there right now is just funky and distracting. I guess a super slow change of angle 1/5th - 1/10th that speed wouldn't be too bad, but atm that wobble is a little too fast.
Remove the wobbly sea-sickness background and it'll be the 2nd best show on C9 right behind "Going Deep" that's how much potential this should have. But the intro background animation is amazingly horrible even though I don't get sea-sickness but If it's on other shows... I already pity the viewers.
@chanmm:Slides for this presentation and a few others in PDF form are:
http://developer.amd.com/afds/pages/rebroadcast2.aspx are more presentations as well.
The future IS Fusion
Herb, for the record I really dislike that (direct3d) is the keyword to enable the restriction., But yes your finally implementing my(old) idea of passing not only the architectures as as a command line flag as a target but also the device to know the memory properties for the execution; CPU/GPU. No matter what, there must be at least 2 dimensions as you showed in the presentation. I believe BOTH must be passed to the compiler, the architecture/execution style/depth of the computation and then a 2nd parameter must be passed which describes which side of the scale the memory model consists of, large address spaces, or small ones. Or let the guts of the compiler track the types of optimization it does like auto-vectorization and a loop unrolling depth, and if it does a certain combination of optimization then it can tag the function to automatically be restricted/enabled for candidate use in DirectCompute and AMP'd.
Can't wait for the day to come when the compiler will actually be able to infer the dial for both the architecture and the dial for memory model back and fourth on a per-function basis in the end and all linked together for a real masterpiece of a binary based on code keywords or code decorations or declarations or pragmas or even the compilers auto-detection of valid optimization during compilation. This may actually bear fruit where the past research didn't succeed from lack of knowledge or resources unlike now when the timing is right.
Maybe "restrict (vector_unit)" would be a more general and less product advertising keyword to use instead of "direct3d". even if it 95% relies on the DX11 DirectCompute stuff since generality = love just as much as an open standard = love.
Awesome, these sort of tools are the kind of things which warm my heart. Instead of MS always trying to cause PR for its own benefit and its own language (C#), its back to being true and being "for the users" similar to how Bill used to describe how he wanted to empower us to customize the computer even if we had to program it.
I loved the general dependency graphs for C++ at last, twas very nice.
Adding that unit test was horribly wonky though..... have it automated more with a direct right-click on a .cpp source file with allowance of using check-boxes to determine how the VS template stamps out the initialization of each functions test case which we can fill the meat assertions later.
Just to let you know, there IS a solution to destroy IE6 off the face off this planet as long as it has an internet connection and has an update mechanism working. IE9 MUST be backported to windows XP and forced into using software rendering.... screw the new DirectX API's :/ If IE9 can render in software the IE team need to take the stick out of their asses, stop rushing to IE10 so damn fast, and actually do something even I'd send them a cake for doing.
The amount of IE6 uses = lower than average IQ Windows XP users. And IE6 will NOT go away until Windows XP has a backdoor out of IE6. Wether by service pack or by a amazing ultra security update patch which makes the Actual interet be used by IE9 whilst the XP OS simply uses the IE6 for the normal integration it always had.
A fairly big job, but this is one way Microsoft can actually do the internet a favour instead of accidentally causing it harm.
NOTE: I DO NOT use XP anymore but I do know many people who do..... and the answer is simple, MS must offer an upgrade path on XP from IE6 to IE9+software rendering only. Weigh the pros+cons of the compromise of having IE9+software rendering VS the hell and pain IE6 is causing while it stays alive. Microsoft made IE6 and WinXP, you should at least take responsibility for your creation so it doesn't hold the rest of the "modern" web back.
Feel free to criticize but I swear this is the simple obvious solution I would even donate extra pocket change to Microsoft to do...
May 11, 2011 at 4:40 PM
Typed ASM should stay a research exercise.... Charles you usually over-hype this typed ASM for maybe for how cool it sounds. I don't think TAL is really a useful or productive mechanism in most ways/shapes/forms for the sum of these parts don't make a greater whole. And I usually love cutting-edge research projects which try something new, but verification should stay up in a higher level.
It would make more sense of have Intel and AMD make type-system's with API's and CPU flags which can allow the CPU itself to "type-check" the machine code jammed down it's pipeline. But for ASM source code to have that sort of overhead in the general case is complete overkill... I think It's easier to have comments left in the ASM source and just as good to have signed and checksummed binaries which are verified by vendors and enthusiasts like me. Malicious coders will fake type safety just as easily if required since security can always be broken, I'd argue that it's even more fragile down there since there's less layers and encapsulation to prevent incorrect code from trying to run when it does happen.
The ONLY way that a typed ASM may be used I can think of is to reverse engineer binaries into whatever source code language you want as long as it is strongly typed. Instead of just reverse engineering the binary into the original source code language for it to have actual meaning.
Verve would undoubtedly benefit from this sort of work and for projects similar to Verve, but its application is way too small for this type of research to benefit anything but a statically verifiable kernel and theorem provers.
Continue the good work but I hope Hawblitzel moves on to even more interesting and beneficial research areas instead of focusing on this particular domain too long unless this exact domain is his passion, in this case hell, take my words as a grain of salt, I'll never suggest a true researcher to research anything but what he/she loves.
Apr 23, 2011 at 6:03 PM
Personally I consider that the classical algorithm evolved into a higher order algorithm called a design pattern, which utilizes multiple algorithms together which itself doesn't have a bounded time but makes use of algorithms which do execute in bounded time.
It was sort of funny how Bart & Wes were trying to specialize the general semantics to fit modern practice and machine architecture so they could connect it with classical computer science. But this is basically just explaining how computer science evolved and the algorithm can be formally defined, even though we just have basic common knowledge of this if we program, but as this lecture shows, the math and science and formal explanation shows how computing can indeed be complex and its great that we can abstract away the need for knowing all this to create a massive learning curve.
@ivan_ I've understood the meaning of "crash" to be interchangeable with "fail". So things fail and don't work which implies a crash to happen and being invalid. But that is just my understanding and not his formal explanation on the subject.
Async integrated into PLINQ sounds like it would be pretty fun to implement and overly powerful in use
Lucien also does pretty well at being able to speak to "us" through you+camera with you as a catalyst with questions.
Anders/Mads arent so fun to talk to recently since they are only about high level features, or a sneek peak into what is in the works which is ok but not my cup of tea, unless they gave funny corner-case code samples on the whiteboard. So personally I love the nitty-gritty details of this sort from who implemented and designed the compiler code rewriting/restructuring techniques just before code generation.