Support: 64 bits and CUDA
Posted: Fri Sep 18, 2009 3:21 am
I wish I could code in something other than Dartmouth Basic and machine code for DEC machines with word lengths of 12,18 and 36 bits (Nope, don't do COBOL) - anyway: "Most" high-power machines coming out of bits and pieces rather than Dell and H-Paq are using 64-bit CPUs like the 4 real/8 effective I7, or AMD's latest efforts (please, no religious wars between the Scarlet As and the sortatrueBlues).
And every Windows since XP has had a flavor to take advantage of 64 bits! (I'm still using XP, probably will until Windows 7 is debugged and all call-homes neutered)
And this one I will stand on Religiously. NVidia's CUDA has turned super-chips that do what sound needs, but don't do anything unless you're running Mean Blood Enemies of Warpland IV, and other games in 3D, into working supercomputers. Every night the I7, but more the 200 or so core CUDA board (only 1) let me turn out an order of magnitude more work than I could for [email protected]
I hope someone is working on a system that'll take advantage of 64-bit CPUs of any 80X86 flavor, and the use of CUDA for audio (an FFT is an FFT whether you are dealing with 1.3GBi/second, (the standard for full-speed uncompressed HDTV or much "slower" signals from a full-blown recording studio (I don't do no eMPty-3s, or any other sound format that starts by saying "let's throw away the top and bottom of the music nobody hears with an I-Pod" and I hope the next Moore's generation brings us CPUs, memory and storage that can handle real uncompressed movies, rather than MP-4 too.)
But for now we're dealing with sound, something Nyquist and Shannon say should be processed at at least 48 KHz per channel, and even though 1 db is only a tenth of what we can hear as "louder", the effects are cumulative, so a minimum of 7 bits deep, with a fixed-byte machine we might as well go for 8 - that's silence to 255 db, or about 2x the sound pressure that causes real damage, using the I7/CUDA example 8 overly-devoted channels at 3 GHz/whatever you can coax out of your video card, or, taken to reality, more channels of perfect sound than the widest pro board could possibly record simultaneously. [there are some "audiophiles" the same who claim they can hear the difference between good $2/foot speaker line and $20/foot line, who will insist on recording at 96 or 128 KHz/32-bit or 48-bit deep sound sampling - terrible overkill, liable to introduce more noise than it cures, but like the ultimate number of channels in, it's a trivial bit of extra coding and he cost will be in the input hardware - folks will be ending up feeding mics into "video input" boards to record 2 to49-1 differences in sound level at better than twce what people can hear, best possible case.
(Remember, Nyquist said to approximate a sine wave, one must sample at 2x the maximum frequency of the signal being recorded. Shannon said that goes for *any* information) Assuming human hearing begins at 0 Hz and tops out at 24KHz, that's a minimum and maximum sample rate of 48 KHz. Assuming we're going to measure in 10ths of a Bel, the minimum difference in sound pressure the human ear can perceive, and 120 db, roughly the sound of a jet engine, at takeoff, at the engine, is the sound pressure causing PAIN, there is no need to go deeper, unless one goes to centabels, where 100 steps make an audible difference.)
OK,OK, thaisisall ridiculous, because you're going to have to spring for balanced input and a good fraction of a high-speed near-perfect Burr-Brown ADC per channel, or about twice what The Dead were laying out for This Year's Best Sound.
But as long as someone's going to be mad enough to write code that can handle what's out there now, they might as well expand it to handle upcoming multiple faster CPU I7/Xeon 5500 series Intel chips and their AMD counterparts, backed by 4 or more n-hundred core NVIDIA "video boards" (effectively n-vector processors per core), with the potential for 8 channels on each musician in a full symphony, plus several hundred more scattered around the hall. Once the subroutines are written (and, with luck, translated into machine code and "bummed" to the max, (OLD hacker talk for "put up or shut up - make it smaller and faster and better, Jack Hack").
Of course, then the only problem will be the work involved in cutting THAT down to 2- to 7- channel raw or lossless stereo, and finding the perfect DAC -to-speaker system to have made it all worthwhile. But I would love to see it possible to make near-perfect 8-to-16 channel inputs a reality, with the relatively simple switches to run it out to infinity. Do it once, with proper paralleling code, and there's No problem going the rest of the way.
OK, it's a job I admit I cannot do, but would love to see someone take on as Audacity 2.x
Could we just blow it out to 64 bits with CUDA soon?
And every Windows since XP has had a flavor to take advantage of 64 bits! (I'm still using XP, probably will until Windows 7 is debugged and all call-homes neutered)
And this one I will stand on Religiously. NVidia's CUDA has turned super-chips that do what sound needs, but don't do anything unless you're running Mean Blood Enemies of Warpland IV, and other games in 3D, into working supercomputers. Every night the I7, but more the 200 or so core CUDA board (only 1) let me turn out an order of magnitude more work than I could for [email protected]
I hope someone is working on a system that'll take advantage of 64-bit CPUs of any 80X86 flavor, and the use of CUDA for audio (an FFT is an FFT whether you are dealing with 1.3GBi/second, (the standard for full-speed uncompressed HDTV or much "slower" signals from a full-blown recording studio (I don't do no eMPty-3s, or any other sound format that starts by saying "let's throw away the top and bottom of the music nobody hears with an I-Pod" and I hope the next Moore's generation brings us CPUs, memory and storage that can handle real uncompressed movies, rather than MP-4 too.)
But for now we're dealing with sound, something Nyquist and Shannon say should be processed at at least 48 KHz per channel, and even though 1 db is only a tenth of what we can hear as "louder", the effects are cumulative, so a minimum of 7 bits deep, with a fixed-byte machine we might as well go for 8 - that's silence to 255 db, or about 2x the sound pressure that causes real damage, using the I7/CUDA example 8 overly-devoted channels at 3 GHz/whatever you can coax out of your video card, or, taken to reality, more channels of perfect sound than the widest pro board could possibly record simultaneously. [there are some "audiophiles" the same who claim they can hear the difference between good $2/foot speaker line and $20/foot line, who will insist on recording at 96 or 128 KHz/32-bit or 48-bit deep sound sampling - terrible overkill, liable to introduce more noise than it cures, but like the ultimate number of channels in, it's a trivial bit of extra coding and he cost will be in the input hardware - folks will be ending up feeding mics into "video input" boards to record 2 to49-1 differences in sound level at better than twce what people can hear, best possible case.
(Remember, Nyquist said to approximate a sine wave, one must sample at 2x the maximum frequency of the signal being recorded. Shannon said that goes for *any* information) Assuming human hearing begins at 0 Hz and tops out at 24KHz, that's a minimum and maximum sample rate of 48 KHz. Assuming we're going to measure in 10ths of a Bel, the minimum difference in sound pressure the human ear can perceive, and 120 db, roughly the sound of a jet engine, at takeoff, at the engine, is the sound pressure causing PAIN, there is no need to go deeper, unless one goes to centabels, where 100 steps make an audible difference.)
OK,OK, thaisisall ridiculous, because you're going to have to spring for balanced input and a good fraction of a high-speed near-perfect Burr-Brown ADC per channel, or about twice what The Dead were laying out for This Year's Best Sound.
But as long as someone's going to be mad enough to write code that can handle what's out there now, they might as well expand it to handle upcoming multiple faster CPU I7/Xeon 5500 series Intel chips and their AMD counterparts, backed by 4 or more n-hundred core NVIDIA "video boards" (effectively n-vector processors per core), with the potential for 8 channels on each musician in a full symphony, plus several hundred more scattered around the hall. Once the subroutines are written (and, with luck, translated into machine code and "bummed" to the max, (OLD hacker talk for "put up or shut up - make it smaller and faster and better, Jack Hack").
Of course, then the only problem will be the work involved in cutting THAT down to 2- to 7- channel raw or lossless stereo, and finding the perfect DAC -to-speaker system to have made it all worthwhile. But I would love to see it possible to make near-perfect 8-to-16 channel inputs a reality, with the relatively simple switches to run it out to infinity. Do it once, with proper paralleling code, and there's No problem going the rest of the way.
OK, it's a job I admit I cannot do, but would love to see someone take on as Audacity 2.x
Could we just blow it out to 64 bits with CUDA soon?