Re: [Faudiostream-users] compiler hangs on this program?

2018-02-23 Thread Mykle Hansen

> On Feb 22, 2018, at 10:23 AM, Oleg Nesterov  wrote:
> 
> On 02/22, Mykle Hansen wrote:
>> 
>> My latest problem: my Faust program seems to hang the compiler,
>> locking up one CPU on my system until I terminate it.
> ...
> 
>> betanoise(beta) = real, imag : an.ifft(N) : select2(0)
>> with {
>>  N=8192; // 2^13
> 
> Well, an.ifft(8192) needs some time to compile ;)

Aha.  Or rather, d’oh.

> but it seems that you do not really understand what it does. You can't use N 
> > 1,
> inputs(an.ifft(N)) == 2 * N and it must be equal to 2 == outputs(real, imag).

You’re right, I sure don’t. =) I thought N was an evaluation window
size, or something.

I was just experimenting with Bourke’s approach, which I 
get in theory but not in practice.  The signal his code is
feeding to fft(-1) is a complex waveform with exponentially decreasing
magnitude over time (dithered with noise) & random phase.
He runs it through IFFT to convert that into 1/f noise, with
exponentially decreasing power over frequency.  

Peering at analyzers.lib a little deeper now …
am I right that N is the number of evaluation
bins, i.e. as would be produced by a forward FFT
analysis of a signal?  (So 32 would be plenty for audio,
and that compiles quickly enough.)

If so, I guess my whole approach is 90 degrees off —
the magnitudes need to be fed in parallel to ifft(),
not in series.

Does that seem right?  I admit I’ve never done an IFFT before. =)

-mykle-



--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] FAUST Compiler for GPGPU?

2018-02-23 Thread Stéphane Letz

> Le 23 févr. 2018 à 09:55, Christoph Kuhr  a écrit :
> 
> Hey,
> 
> perhapes some topic to discuss on LAC2018?
> 
>> 1) GPU computation is not really adapted to the need of general audio 
>> algorithms, but more for highly « data parallel » needs (likes images). In 
>> audio code, as soon as your code is doing recursions, GPU are quite 
>> inefficient and not used the way they like
>> 
>> 2) the code generation strategy was very naive, so probably even under-using 
>> what could be theoretically achieved
>> 
>> 3) GPU/CPU memory transfer suffers from high latency, so is not adapted to 
>> real-time computation with small buffer sizes
> I did some recent research on that. 
> http://ceur-ws.org/Vol-2009/fmt-proceedings-2017-paper10.pdf
> 
> With NVidia Pascal architecture ( > GT 10XX) and newer you have Zero-Copy 
> Data Transfer.
> Sadly now Pascal Card around :-/
> 
> With GT 900 we could achieve 512 Samples / 48k @ 2Ch.

Very interesting indeed !

> 
> 
>> 
>> I read later on that the Csound guys did some experiment, see here about the 
>> CUDA thing:  http://www.csounds.com/manual/html/PrefaceWhatsNew.html. Victor 
>> Lazzarini on this list can probably develop here.
>> 
>> So my conclusion is that OpenCL/CUDA *could* be interesting again assuming 
>> 1) a subset of audio algorithms only would be compiled, 2) the Faust 
>> compiler possibly need some new primitives (vector, matrix..) more adapted 
>> to GPU processing, and code generation would have two be improved, 3) the 
>> latency issues would have to be revisited with more recent and powerful 
>> cards.
> 
> I am not  very familiar with using Faust, just followed it on LAC. I just 
> think this would be a really interesting topic, espacially with the Faust web 
> interpreter

Do you mean using WebGL for GPGPU ?

> You could do some serious online signal processing like virtual soundscapes, 
> which is something we are considering in our research project fast-music 
> (www.soundjack.eu).
> Or am I on a wrong path regarding Faust?
> 

Well I suggest you dig a bit more the language itself, with them documentation 
and libraries here : http://faust.grame.fr/Documentation/ 

Then "FAUST Compiler for GPGPU could then be an interesting topic for «Round 
Table Topics » for IFC: here http://www.ifc18.uni-mainz.de ? Would you be there?

Stéphane 


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] FAUST Compiler for GPGPU?

2018-02-23 Thread Christoph Kuhr

Hey,

perhapes some topic to discuss on LAC2018?


1) GPU computation is not really adapted to the need of general audio 
algorithms, but more for highly « data parallel » needs (likes images). In 
audio code, as soon as your code is doing recursions, GPU are quite inefficient 
and not used the way they like

2) the code generation strategy was very naive, so probably even under-using 
what could be theoretically achieved

3) GPU/CPU memory transfer suffers from high latency, so is not adapted to 
real-time computation with small buffer sizes
I did some recent research on that. 
http://ceur-ws.org/Vol-2009/fmt-proceedings-2017-paper10.pdf


With NVidia Pascal architecture ( > GT 10XX) and newer you have 
Zero-Copy Data Transfer.

Sadly now Pascal Card around :-/

With GT 900 we could achieve 512 Samples / 48k @ 2Ch.




I read later on that the Csound guys did some experiment, see here about the 
CUDA thing:  http://www.csounds.com/manual/html/PrefaceWhatsNew.html. Victor 
Lazzarini on this list can probably develop here.

So my conclusion is that OpenCL/CUDA *could* be interesting again assuming 1) a 
subset of audio algorithms only would be compiled, 2) the Faust compiler 
possibly need some new primitives (vector, matrix..) more adapted to GPU 
processing, and code generation would have two be improved, 3) the latency 
issues would have to be revisited with more recent and powerful cards.


I am not  very familiar with using Faust, just followed it on LAC. I 
just think this would be a really interesting topic, espacially with the 
Faust webinterpreter. You could do some serious online signal processing 
like virtual soundscapes, which is something we are considering in our 
research project fast-music (www.soundjack.eu).

Or am I on a wrong path regarding Faust?


BR,
Ck



Stéphane



Le 23 févr. 2018 à 08:07, Christoph Kuhr  a écrit :

Hi *,

I wonder if there is some work on a CUDA/OpenCL Compiler for Faust?

Would this not be a very interesting feature?


BR,
Ck

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users



--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users