Monday, 2016-02-29

*** ricardocrudo has quit IRC00:18
*** Spark[Nick] has quit IRC00:33
*** sigma6 has joined #lv200:59
*** trebmuh has quit IRC01:25
ColaEuphoriacan anyone tell me the implications of using openmp in an LV2 plugin?01:36
ColaEuphoriait looks attractive so far01:36
ColaEuphoriabut i feel like there might be more to it for low latency hard realtime systems running in the same memory space as a host01:38
*** falktx` has joined #lv204:21
*** falktx has quit IRC04:25
*** edogawa has joined #lv207:57
*** dsheeler has joined #lv209:35
*** ricardocrudo has joined #lv210:09
*** edogawa has quit IRC10:17
*** edogawa has joined #lv210:19
*** ricardocrudo has quit IRC10:24
*** ricardocrudo has joined #lv210:24
*** ventosus has joined #lv210:25
*** ventosus has quit IRC10:35
*** trebmuh has joined #lv210:47
*** ricardocrudo has quit IRC11:23
*** edogawa has quit IRC11:28
*** edogawa has joined #lv211:30
*** ventosus has joined #lv212:19
*** tytel has joined #lv214:58
*** gabrbedd has joined #lv214:59
*** gabrbedd has quit IRC14:59
*** tytel has quit IRC15:04
*** gabrbedd has joined #lv215:29
*** rncbc has joined #lv215:59
*** deva has joined #lv216:17
*** rncbc has quit IRC16:46
*** rncbc has joined #lv216:54
*** tytel has joined #lv218:07
HarryHaarenColaEuphoria: OpenMP creates and pthread_join-s threads IIRC, which are non-deterministic in timing (AKA, a system call, which should be avoided at all costs)18:40
HarryHaarenColaEuphoria: do you have something that *really* needs to be threaded that badly?18:41
HarryHaarenremember, Jack2 (if you use that one) will automatically parralelize parts of the graph if it can18:42
HarryHaarenand that the host application will probably try to run you plugin in a seperate thread to other DSP stuff (that also needs to happen before Jack DSP timeout)18:42
HarryHaarenall in all - although awesome to multithread internally, its not a must unless you have a very specific use case, which is really CPU hungery18:42
*** jofemodo has joined #lv219:10
*** ricardocrudo has joined #lv220:41
*** ventosus has left #lv221:16
*** deva has quit IRC21:17
*** ricardocrudo has quit IRC22:31
ColaEuphoriaHarryHaaren: i looked more into it and decided to stick with traditional threading. it's apparently too difficult to meet hard real time guarantees with openmp22:56
HarryHaareni'd guess so yeah22:56
HarryHaareni tend to avoid (any and all) large frameworks that make life "easy" - they just don't scale to real-time audio22:57
ColaEuphoriain fm synthesis, the system has to account for not only 8 individual oscillators, but also how they route into one another, and for up to 16 voices22:57
HarryHaarenRT audio needs nimble control over resources, and when what happens. Forget large things, plain old C, and think correctly :D22:57
falktx`have you looked into juce?22:58
falktx`it's made with audio in mind22:58
ColaEuphoriathis is modeled as an 8x8 transformation matrix which gets multiplied against another matrix representing an amplitude for every voice, so an 8x8 * 8x16 matrix multiplication22:58
ColaEuphoria1024 operations22:58
ColaEuphoriaand even when it's a 8x8 * 8x1 multiplication (monophonic)22:58
ColaEuphoriavalgrind tells me that it's still taking up the most time22:59
ColaEuphoriaif i can incorporate SIMD and threading, that can reduce the polyphonic multiply from 1024 to 32 operations on a quad core processor23:00
ColaEuphoria<falktx`> have you looked into juce?23:00
ColaEuphoriai have23:00
ColaEuphoriai don't like it23:00
ColaEuphoria:)23:00
falktx`it's not for everyone23:01
ColaEuphoriathe biggest gripe i have with it is its license23:01
ColaEuphoriaa lot of people here may disagree with me23:01
ColaEuphoriabut i'm not too into the whole GNU way of seeing the world23:02
*** rncbc has quit IRC23:06
HarryHaarenColaEuphoria: idea for vectorization yup, assuming floats, AVX2 has 256 bit-wide simd registers, so will speed up a LOT :D23:17
* HarryHaaren recently built new machine, which is an animal for memcpy() due to AVX223:18
ColaEuphoriaoh shit really?23:19
ColaEuphoriathat's pretty nice23:19
ColaEuphoriathanks!23:19
*** edogawa has quit IRC23:21
ColaEuphoriaalthough it doesn't seem to offer dot product23:21
ColaEuphoriaseems like some tests would be needed23:21
ColaEuphoriaoh wait23:22
ColaEuphoriathat's only for doubles23:22
HarryHaarenColaEuphoria: do you program intrinsics? Or (like most sane people ;) rely on the compiler to do it?23:28
ColaEuphoriathe only intrinsics i really care about are a few select ones that operate on vectors23:29
HarryHaarenI've recently been to some training for HPC and vectorization, it seems so "easy" until you get into the probelms that actually exist, and then suddenly the data-structure and cachelines become really important23:29
HarryHaarenyup, same as most then23:29
HarryHaarensame as me anyway - and even at that, most of my code is scalar.. since that training, I realized there's lots of optimizations possible for the OpenAV code23:30
ColaEuphoriato me, a vector is just another datatype. letting the compiler "figure it out" in this case is as silly as java type promotion imo23:30
ColaEuphoriamaking certain things a vector to begin with eases off the onus on the compiler to figure out when and where is a good time to convert things23:31

Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!