<p dir="ltr">Another data point: a $600 Geforce 1080 has 8228 GFLOPs and each floating point op could be a MAC (called FMA3 or FMA4 in GPU land). So that's 8.228 TMACS at $0.07/GMACS, 11 times cheaper than TI DSPs. If you need to include a PC and silent cooling that may go up to $0.18/GMACS, still 4 times cheaper than TI. And you get 8 GB of RAM, too.</p>
<br><div class="gmail_quote"><div dir="ltr">On Fri, 10 Feb 2017 03:49 cheater00 cheater00, <<a href="mailto:cheater00@gmail.com">cheater00@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr" class="gmail_msg">Thanks, I'll check them out. Those are some great links.</p>
<br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Fri, 10 Feb 2017 03:26 Terry Shultz, <<a href="mailto:thx1138@earthlink.net" class="gmail_msg" target="_blank">thx1138@earthlink.net</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="gmail_msg">Check out my friend Dr. Paul Beckman’s site for tools <a href="https://www.dspconcepts.com/audio-weaver" class="gmail_msg" target="_blank">https://www.dspconcepts.com/audio-weaver</a><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">and my friend Tony Rouget site in Hong Kong <a href="https://www.minidsp.com" class="gmail_msg" target="_blank">https://www.minidsp.com</a></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">and lastly my pal Al Clark’s site <a href="https://www.danvillesignal.com" class="gmail_msg" target="_blank">https://www.danvillesignal.com</a> <a href="https://www.danvillesignal.com/landing-pages/snowbird-audio" class="gmail_msg" target="_blank">https://www.danvillesignal.com/landing-pages/snowbird-audio</a></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">These are good examples of audio products that are better than the DSP Manufacture can build.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">and lastly my old friend from MIT Dr. Bill Gardner</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><a href="https://www.audiobuildersworkshop.com" class="gmail_msg" target="_blank">https://www.audiobuildersworkshop.com</a></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">hope this helps you guys a bit more.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">regards,</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Terry</div></div><div style="word-wrap:break-word" class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"><div class="gmail_msg"><blockquote type="cite" class="gmail_msg"><div class="gmail_msg">On Feb 9, 2017, at 5:20 PM, cheater00 cheater00 <<a href="mailto:cheater00@gmail.com" class="gmail_msg" target="_blank">cheater00@gmail.com</a>> wrote:</div><br class="m_-8696969230401446802m_-1733060574927333148Apple-interchange-newline gmail_msg"><div class="gmail_msg"><p dir="ltr" class="gmail_msg">That makes sense, it's also a very solid way to do things, if one manages to dot all the i's so the result is an accurate copy of the naiive method.</p>
<br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Fri, 10 Feb 2017 02:01 Olivier Gillet, <<a href="mailto:ol.gillet@gmail.com" class="gmail_msg" target="_blank">ol.gillet@gmail.com</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think you're vastly overestimating how much computational resources<br class="gmail_msg">
this requires.<br class="gmail_msg">
<br class="gmail_msg">
A well-known trick is to partition the head of the IR into small<br class="gmail_msg">
blocks (say 32 samples long if you want sub ms latency at 48kHz), and<br class="gmail_msg">
use larger blocks for the tail of the IR (latency is not a problem for<br class="gmail_msg">
the tail). The whole convolution can be decomposed as a sum of<br class="gmail_msg">
convolutions by each of the blocks, which can be evaluated in the<br class="gmail_msg">
frequency domain by DFT, complex multiplication by the DFT of the IR<br class="gmail_msg">
block, and IFT.<br class="gmail_msg">
<br class="gmail_msg">
I did some back of the envelope computations and arrived at the result<br class="gmail_msg">
of 40 MMACs for a sample rate of 48kHz and a 2s-long IR.<br class="gmail_msg">
<br class="gmail_msg">
I found it a bit too good to be true and I got back to the source:<br class="gmail_msg">
<br class="gmail_msg">
<a href="http://www.cs.ust.hk/mjg_lib/bibs/DPSu/DPSu.Files/Ga95.PDF" rel="noreferrer" class="gmail_msg" target="_blank">http://www.cs.ust.hk/mjg_lib/bibs/DPSu/DPSu.Files/Ga95.PDF</a><br class="gmail_msg">
p. 132, just before the beginning of section 6:<br class="gmail_msg">
<br class="gmail_msg">
"Thus a filter of size 128K samples will require approximately 427<br class="gmail_msg">
multiples per output sample".<br class="gmail_msg">
<br class="gmail_msg">
This assumes that the DFT of all the blocks the IR is made of has been<br class="gmail_msg">
pre-computed; but this can be done in faster than real-time when the<br class="gmail_msg">
IR is loaded, assuming you've got enough RAM.<br class="gmail_msg">
<br class="gmail_msg">
Of course there's the issue of scheduling and a lot of additional<br class="gmail_msg">
bookkeeping, but at the very worst the order of magnitude we're in are<br class="gmail_msg">
hundreds of MMACs and a couple MBytes of RAM.<br class="gmail_msg">
<br class="gmail_msg">
On Fri, Feb 10, 2017 at 1:09 AM, cheater00 cheater00<br class="gmail_msg">
<<a href="mailto:cheater00@gmail.com" class="gmail_msg" target="_blank">cheater00@gmail.com</a>> wrote:<br class="gmail_msg">
> Found the right spot at the TI website. I've made a somewhat large<br class="gmail_msg">
> survey of AD and TI chips. I've uploaded the data to Google Docs (see<br class="gmail_msg">
> link at the end of this email).<br class="gmail_msg">
><br class="gmail_msg">
> For a lot of power, TI can't be beat. Their chips are as cheap as<br class="gmail_msg">
> $0.78/GMACS, that's on TMS320C6678CYP, a chip with 8.5MB ram and 256<br class="gmail_msg">
> GMACS, $200 at Mouser.<br class="gmail_msg">
><br class="gmail_msg">
> The cheapest TMS320C is TMS320C6652CZH6 with 19.2 GMACS, 1MB ram, at<br class="gmail_msg">
> $41.95 at Arrow.<br class="gmail_msg">
><br class="gmail_msg">
> For cheap chips, AD is great. Their most powerful non-obsolete<br class="gmail_msg">
> offering is ADSP-BF561SKBCZ-5A, 2 GMACS, 328KB ram, $32.59 at Arrow,<br class="gmail_msg">
> for $16.30/GMACS. Some of their unusually cheap chips include:<br class="gmail_msg">
> ADSP-BF525BBCZ-5A, 1.2 GMACS, 132KB, $11.79 at Newark Element14 for $9.83/GMACS<br class="gmail_msg">
> ADSP-BF534BBCZ-4A, 1 GMACS, 134KB, $5.88 at Newark Element14 for $5.88/GMACS<br class="gmail_msg">
> ADSP-BF531SBBCZ400 0.8 GMACS, 53KB, $4.44 at Avnet for $5.54/GMACS<br class="gmail_msg">
><br class="gmail_msg">
> Those chips were noticeably (3-4x) cheaper than their close<br class="gmail_msg">
> counterparts, apparently Newark and Avnet have some sort of blowout.<br class="gmail_msg">
><br class="gmail_msg">
> I stopped surveying AD chips around 1.2 GMACS. There are going to be<br class="gmail_msg">
> much cheaper ones than I found, I guess, but they just have so many<br class="gmail_msg">
> chips I'd spend 2 days figuring out the prices. It's obvious: their<br class="gmail_msg">
> stuff is cheap.<br class="gmail_msg">
><br class="gmail_msg">
> AD are inexpensive, but clearly, if you need a lot of processing power<br class="gmail_msg">
> and/or a lot of memory the TI will be 5 to 10 times cheaper. $200<br class="gmail_msg">
> might not be so much if that's the majority of the cost of the box for<br class="gmail_msg">
> a DIY gamer.<br class="gmail_msg">
><br class="gmail_msg">
> As far as evaluation boards go, the highest-powered AD board seems to<br class="gmail_msg">
> be the best value. The TMDSEVM6678L costs $399 on TI's website, has<br class="gmail_msg">
> 64MB Flash, 512 MB DDR3 SDRAM, gigabit ethernet, usb mini-B, 80 IO<br class="gmail_msg">
> header and an AMC header with PCIe, an emulator port, a small FPGA for<br class="gmail_msg">
> configuration and booting, etc. See features at these two links:<br class="gmail_msg">
> <a href="http://www.ti.com/tool/tmdsevm6678#Technical%20Documents" rel="noreferrer" class="gmail_msg" target="_blank">http://www.ti.com/tool/tmdsevm6678#Technical%20Documents</a><br class="gmail_msg">
> <a href="http://www2.advantech.com/Support/TI-EVM/6678le_of.aspx" rel="noreferrer" class="gmail_msg" target="_blank">http://www2.advantech.com/Support/TI-EVM/6678le_of.aspx</a><br class="gmail_msg">
><br class="gmail_msg">
> I don't know if the USB can be used in host mode. Does anyone know?<br class="gmail_msg">
><br class="gmail_msg">
> It is unclear to me which version of the chip this board has - the<br class="gmail_msg">
> 320GMACS one at 1.25 GHz or the 256 GMACS one at 1 GHz.<br class="gmail_msg">
><br class="gmail_msg">
> Finally, there is a version of this board that costs $599 (50% more)<br class="gmail_msg">
> and it has an XDS560V2 emulation mode. I understand that's a debugger.<br class="gmail_msg">
> I don't know why exactly it is significant. What advantages does this<br class="gmail_msg">
> bring for a developer?<br class="gmail_msg">
> Is the emulator port shown on advantech's website only available in<br class="gmail_msg">
> this more expensive version? If the cheaper version also has it, what<br class="gmail_msg">
> can it be used for if the XDS560V2 emulation mode is not available?<br class="gmail_msg">
><br class="gmail_msg">
> Survey data is on Google Docs. Anyone can comment:<br class="gmail_msg">
><br class="gmail_msg">
> <a href="https://docs.google.com/spreadsheets/d/1oT-9PVh8yZMMwAkpltqGo8mhSL1NLXZJiC-LH7swsbY/edit?usp=sharing" rel="noreferrer" class="gmail_msg" target="_blank">https://docs.google.com/spreadsheets/d/1oT-9PVh8yZMMwAkpltqGo8mhSL1NLXZJiC-LH7swsbY/edit?usp=sharing</a><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Have fun!<br class="gmail_msg">
><br class="gmail_msg">
> On Thu, Feb 9, 2017 at 9:02 PM, cheater00 cheater00 <<a href="mailto:cheater00@gmail.com" class="gmail_msg" target="_blank">cheater00@gmail.com</a>> wrote:<br class="gmail_msg">
>> Yeah, usb host mode sounds super useful unless SD will allow faster UI<br class="gmail_msg">
>> interaction.<br class="gmail_msg">
>><br class="gmail_msg">
>> Do you know which TI chips have the most MMACS? I find the website<br class="gmail_msg">
>> confusing.<br class="gmail_msg">
>><br class="gmail_msg">
>><br class="gmail_msg">
>> On Thu, 9 Feb 2017 20:29 , <<a href="mailto:rsdio@audiobanshee.com" class="gmail_msg" target="_blank">rsdio@audiobanshee.com</a>> wrote:<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Based on your survey, I'd recommend the Analog Devices board, even though<br class="gmail_msg">
>>> I usually lean towards TMS320. The TMS320 family is huge, including both<br class="gmail_msg">
>>> fixed-point and floating-point, low-power and high-speed, old and new<br class="gmail_msg">
>>> designs, etc. Some of the TMS320 boards you listed are really geared more<br class="gmail_msg">
>>> towards motor control than audio, which is why they might be underpowered<br class="gmail_msg">
>>> for long impulse response convolution. I know that the AD SHARC family is<br class="gmail_msg">
>>> also large, and they're very popular, but I am less familiar with the<br class="gmail_msg">
>>> options.<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Don't forget to look at the chip manufacturer as a direct source for these<br class="gmail_msg">
>>> boards. I always buy directly from Texas Instruments because Digi-Key tends<br class="gmail_msg">
>>> to have a markup. Outside the US, maybe it's a different story due to<br class="gmail_msg">
>>> international availability.<br class="gmail_msg">
>>><br class="gmail_msg">
>>> I'd recommend something like the 1MB 800 MMAC board and not worry about<br class="gmail_msg">
>>> external RAM. 1MB seems like plenty. I'd also recommend trying to implement<br class="gmail_msg">
>>> both the time domain convolution and the frequency domain version. There are<br class="gmail_msg">
>>> ways to reduce the latency of the frequency domain approach, and at least it<br class="gmail_msg">
>>> would allow for longer impulse responses to be supported. For IRs that are<br class="gmail_msg">
>>> short enough, the time domain approach would work. I've also seen papers on<br class="gmail_msg">
>>> combining the two, since LTI techniques can be run in parallel and summed.<br class="gmail_msg">
>>><br class="gmail_msg">
>>> As for taking pairs of 16-bit samples to speed things up, be aware that<br class="gmail_msg">
>>> not all instructions can work that way. I think that most DSPs can do a few<br class="gmail_msg">
>>> simple operations on value pairs, but the most complex DSP instructions can<br class="gmail_msg">
>>> only handle full samples. DSP architectures have internal registers that are<br class="gmail_msg">
>>> much larger than the sample size, like 56-bit or higher. If you think about<br class="gmail_msg">
>>> all of the potential overflow when adding thousands of samples from an<br class="gmail_msg">
>>> impulse response, you can see why such large registers are needed. When<br class="gmail_msg">
>>> working in that model, its not possible to handle the overflow from two<br class="gmail_msg">
>>> samples that are combined in a single 32-bit input value.<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Finally, I think that nobody has made something like this because the user<br class="gmail_msg">
>>> interface would be rather difficult. It's a bit of a power-user effect. On<br class="gmail_msg">
>>> that note, some sort of SD card might be useful, so I can see why you're<br class="gmail_msg">
>>> looking into that. However, perhaps just a custom USB class device would be<br class="gmail_msg">
>>> enough of an interface to allow downloading impulse responses to the device.<br class="gmail_msg">
>>> At a minimum, you'll need a large Flash to store the current impulse<br class="gmail_msg">
>>> response, or some way to partition the program Flash to set aside room for<br class="gmail_msg">
>>> the data. The AD board with USB host mode could feasibly read directly from<br class="gmail_msg">
>>> a USB memory stick or Flash drive.<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Brian<br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>> On Feb 6, 2017, at 9:20 PM, cheater00 cheater00 <<a href="mailto:cheater00@gmail.com" class="gmail_msg" target="_blank">cheater00@gmail.com</a>><br class="gmail_msg">
>>> wrote:<br class="gmail_msg">
>>> > Brian, $50 is a steal. I've had a look at Digikey.<br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > This TI board is £24. It has ~150 KB on-chip RAM, but it has an<br class="gmail_msg">
>>> > integrated SDRAM interface.<br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > <a href="http://www.digikey.co.uk/product-detail/en/texas-instruments/LAUNCHXL-F28377S/296-42484-ND/5404239" rel="noreferrer" class="gmail_msg" target="_blank">http://www.digikey.co.uk/product-detail/en/texas-instruments/LAUNCHXL-F28377S/296-42484-ND/5404239</a><br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > This TI board is £40. It has ~384 KB on-chip RAM and an integrated<br class="gmail_msg">
>>> > SRAM interface and SD card support. 200 MMACS.<br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > <a href="http://www.digikey.co.uk/product-detail/en/texas-instruments/TMDX5505EZDSP/296-24965-ND/2127652" rel="noreferrer" class="gmail_msg" target="_blank">http://www.digikey.co.uk/product-detail/en/texas-instruments/TMDX5505EZDSP/296-24965-ND/2127652</a><br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > This AD board is £60. It has 1MB on-chip RAM and USB host mode, no<br class="gmail_msg">
>>> > idea about ram interface or SD card. 800 MMACS.<br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > <a href="http://www.digikey.co.uk/product-detail/en/analog-devices-inc/ADZS-BF706-EZMINI/ADZS-BF706-EZMINI-ND/5408943" rel="noreferrer" class="gmail_msg" target="_blank">http://www.digikey.co.uk/product-detail/en/analog-devices-inc/ADZS-BF706-EZMINI/ADZS-BF706-EZMINI-ND/5408943</a><br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > This last one sports 800 MMACS. Is this enough processing power for<br class="gmail_msg">
>>> > the 5-second convolution I mentioned above? It seemed to me like that<br class="gmail_msg">
>>> > would need 4608 MMACs. Maybe 2304 if we take pairs of 16 bit samples<br class="gmail_msg">
>>> > and treat them as 32 bit values. Are my numbers correct? Are there<br class="gmail_msg">
>>> > optimizations that can be done to lower this number, while still<br class="gmail_msg">
>>> > having zero latency? I understand FFT domain convolution introduces<br class="gmail_msg">
>>> > latency, which is not wanted in hardware. "Naive" MAC based<br class="gmail_msg">
>>> > convolution doesn't seem too far out of reach.<br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > This TI board is £156. It has 256 KB on-chip RAM and support for DDR2<br class="gmail_msg">
>>> > SDRAM. No mention of MMACs but they say 3648 MIPS and I assume a<br class="gmail_msg">
>>> > pipelined MAC costs one instruction, would that be correct?<br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > <a href="http://www.digikey.co.uk/product-detail/en/texas-instruments/TMDSLCDK6748/TMDSLCDK6748-ND/5213032" rel="noreferrer" class="gmail_msg" target="_blank">http://www.digikey.co.uk/product-detail/en/texas-instruments/TMDSLCDK6748/TMDSLCDK6748-ND/5213032</a><br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > The more expensive boards don't seem to have more powerful DSP chips.<br class="gmail_msg">
>>> > And those chips don't really get much more powerful either. However,<br class="gmail_msg">
>>> > convolution is easily parallelised. So, worst case scenario, if you<br class="gmail_msg">
>>> > wanted really long impulse responses you'd have to use a few chips.<br class="gmail_msg">
>>> > However, even the really good 800 MMACS Blackfin ones are £15 unit<br class="gmail_msg">
>>> > price, so that's not so bad...<br class="gmail_msg">
>>> ><br class="gmail_msg">
>>> > So, tell me, why hasn't anyone made this yet?<br class="gmail_msg">
>>> ><br class="gmail_msg">
><br class="gmail_msg">
> _______________________________________________<br class="gmail_msg">
> Synth-diy mailing list<br class="gmail_msg">
> <a href="mailto:Synth-diy@synth-diy.org" class="gmail_msg" target="_blank">Synth-diy@synth-diy.org</a><br class="gmail_msg">
> <a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" class="gmail_msg" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br class="gmail_msg">
</blockquote></div>
_______________________________________________<br class="gmail_msg">Synth-diy mailing list<br class="gmail_msg"><a href="mailto:Synth-diy@synth-diy.org" class="gmail_msg" target="_blank">Synth-diy@synth-diy.org</a><br class="gmail_msg"><a href="http://synth-diy.org/mailman/listinfo/synth-diy" class="gmail_msg" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br class="gmail_msg"></div></blockquote></div><br class="gmail_msg"></div></div></div></blockquote></div></blockquote></div>