<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi All,<br>
<br>
I know that there is a lightning fast cudaica implementation that
leverages GPUs on Linux, but has anyone tried making use of new CUDA
gpu functionality that is now built in to the latest versions of
matlab to optimize runica? I'm particularly interested in this so
that we could make use of CUDA GPUs on windows machines within
matlab.<br>
<br>
Thanks,<br>
Brian<br>
<br>
<div class="moz-cite-prefix">On 6/12/13 12:31 PM, Makoto Miyakoshi
wrote:<br>
</div>
<blockquote
cite="mid:CAEqC+SVbLxdg7fJE-cxKn=8gGNgU_Mi2kO+A2ViOcFkwT04SnQ@mail.gmail.com"
type="cite">
<div dir="ltr">Dear Avi,
<div><br>
</div>
<div style="">runica() runs slowly, and spending 50 min is not
surprising (assuming you have >32 channels and >30min
data). binica() runs faster, but does not run on windows. We
have cudaica() which runs super-fast but requires
configuration of GPU.</div>
<div style=""><br>
</div>
<div style="">Makoto</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">2013/6/9 Avi Lazarovits <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:avila@post.bgu.ac.il" target="_blank">avila@post.bgu.ac.il</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="rtl">
<div dir="ltr">Hello, </div>
<div dir="ltr">Thank you very much, I will try to run
this function with the new filter.</div>
<div dir="ltr">About the inconsistency, actually I run a
bandpass filter and by mistake I quoted the code for
the low pass filter which is much faster. The code for
the highpass is: EEG = pop_eegfilt( EEG, 1, 0, [], 0,<span
style="font-size:13px;font-family:arial,sans-serif">0,0,
0, ‘firls’, 0</span>);</div>
<div dir="ltr">
<div dir="ltr"><br>
</div>
<div>Another function I intend to use is running ICA
on these files. Is there any way to accelerate the
ICA (in my computer it took about 50 min wuth
deafult settings of ICA)?</div>
<div><br>
</div>
<div>Thanks</div>
<span class="HOEnZb"><font color="#888888">
<div>Avi</div>
<div dir="ltr"><br>
</div>
<div><br>
</div>
</font></span></div>
</div>
<div class="HOEnZb">
<div class="h5">
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">
<div dir="ltr">2013/6/9 Andreas Widmann <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:widmann@uni-leipzig.de"
target="_blank">widmann@uni-leipzig.de</a>></span></div>
<blockquote class="gmail_quote" style="margin:0 0
0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">Hi Avi,<br>
<br>
short answer:<br>
upgrading to a recent 12.x EEGLAB version and
using pop_eegfiltnew should solve your problem.<br>
<br>
Long answer:<br>
* I have to slightly correct my previous
statement. The legacy (fir1/firls) FIR filter
uses MATLAB filtfilt instead of MATAB filter and
is thus not multi-threaded by default.<br>
* The legacy filter is flawed (see e.g. <a
moz-do-not-send="true"
href="http://www.frontiersin.org/Perception_Science/10.3389/fpsyg.2012.00233/full"
target="_blank">http://www.frontiersin.org/Perception_Science/10.3389/fpsyg.2012.00233/full</a>
and <a moz-do-not-send="true"
href="https://sccn.ucsd.edu/bugzilla/show_bug.cgi?id=631for"
target="_blank">https://sccn.ucsd.edu/bugzilla/show_bug.cgi?id=631for</a>
a more detailed description) and is not
recommended.<br>
* The new FIR filter in EEGLAB 12.x uses plain
MATLAB filter an is thus genuinely
multi-threaded. Filtering a 1086734-point
66-channel dataset takes 5 seconds with
265-point filter (default for 100 Hz-lowpass)
and 2 min 16 seconds with 6145-point filter
(your filter length) on my 1.7 Ghz dual core i5.
Should be much faster on your machine.<br>
* Note: there is an inconsistency between your
command (EEG = pop_eegfilt( EEG, 0, 100, [],
0,0, 0, ‘firls’, 0);) and your reported output.
This command should give a 60-point lowpass
filter and *not* a 6144-point highpass. Did you
change something in your EEGLAB code?<br>
<br>
Hope this helps! Best,<br>
Andreas<br>
<div>
<div><br>
> I am using EEGlab to process EEG
recordings, and running low pass 100 Hz is
very slow. I am looking for code
modifications I can make to accelerate the
running time, and also recommendation for
optimal hardware specs for this process.<br>
><br>
> The files I process are recordings of
66 channles @ 2KHz ~10 minutes long (1086734
samples) bug. I can’t resample the files
because I need high temporal resolution.<br>
><br>
> I use EEGlab version 11.0.3.1b, and run
“firls” filter. I run the filter with the
following command:<br>
> EEG = pop_eegfilt( EEG, 0, 100, [],
0,0, 0, ‘firls’, 0);<br>
> When I run this command I get the
following message:<br>
><br>
> eegfilt() - performing 6144-point
highpass filtering.<br>
> eegfilt() - highpass transition band
width is 0.2 Hz.<br>
><br>
> The computer I run the processing on
now is i5 3470 (4 cores@ 3.2 Ghz) with 4Gb
RAM running windows 7 enterprise 64 bit and
Matlab 2012a.<br>
><br>
> I tried running the same process on an
i7 extreme edition 3930k with 64Gb RAM
system and it didn't shorten the running
time at all. I also tried running this
filter on a workstation with Xeon CPU and it
shortened the running time, but not
significantly. I looked on the CPU monitor
and found that it doesn’t use more than 1
core, and that the maximal RAM memory usage
during the processing was about 6.5 Gb.<br>
><br>
> 1. I found that using SSD shortens
the time significantly, and therefore I
assume that one of the big bottlenecks of
this processing is that the process is made
on the hard disk and not on the RAM. Is
there a way to “make” Matlab use RAM instead
of the hard drive?<br>
><br>
> 2. Are there code changes I can
make in EEGlab’s code to run this filter
multithreaded so that the process will use
all the cores of my CPU? Is there any way to
make this process on GPU? Will it accelerate
the process more than using parallel
computing of the CPU?<br>
><br>
><br>
> Thank you<br>
><br>
> Avi<br>
><br>
><br>
><br>
> 2013/6/8 Arnaud Delorme <<a
moz-do-not-send="true"
href="mailto:arno@sccn.ucsd.edu"
target="_blank">arno@sccn.ucsd.edu</a>><br>
> Thanks Andreas for the clarification.<br>
><br>
> Arno<br>
><br>
> On 8 Jun 2013, at 06:58, Andreas
Widmann wrote:<br>
><br>
> > Hi Avi and Arno,<br>
> ><br>
> > no using parfor won't help here,
filtering is already multithreaded since
MATLAB R2007a.<br>
> > <a moz-do-not-send="true"
href="http://www.mathworks.de/support/solutions/en/data/1-4PG4AN/"
target="_blank">http://www.mathworks.de/support/solutions/en/data/1-4PG4AN/</a><br>
> ><br>
> > I can try to narrow down the
problem, but please on list (eeglablist).
This might be interesting also for others.
Many relevant parameters are missing:<br>
> > * Length of dataset (samples or
time and fs)<br>
> > * Filter length or order<br>
> > * OS and version<br>
> > * EEGLAB version<br>
> > * Why legacy filter (fir1/firls)?
Using the new filter will immediately halve
computation time.<br>
> ><br>
> > Best,<br>
> > Andreas<br>
> ><br>
> > Am 07.06.2013 um 22:20 schrieb
Arnaud Delorme <<a moz-do-not-send="true"
href="mailto:arno@sccn.ucsd.edu"
target="_blank">arno@sccn.ucsd.edu</a>>:<br>
> ><br>
> >> Dear Avi,<br>
> >><br>
> >> yes, it is possible to shorten
the time.<br>
> >> If you have multiple
processor, you could try replacing line 74
of firfilt.m<br>
> >><br>
> >> for iDc = 1:(length(dcArray) -
1)<br>
> >><br>
> >> with<br>
> >><br>
> >> parfor iDc =
1:(length(dcArray) - 1)<br>
> >><br>
> >><br>
> >> Channels will be filtered in
parallel.<br>
> >> GPU could help as well, but
that's another story.<br>
> >><br>
> >> Hope this helps,<br>
> >><br>
> >> Arno<br>
> >><br>
> >> On 2 Jun 2013, at 23:53, Avi
Lazarovits wrote:<br>
> >><br>
> >>> Hello,<br>
> >>> My name is Avi and I work
in lab with EEG recordings. I am using the
EEGlab on matlab 2012b and would like to
thank you for writing this useful toolbox.<br>
> >>><br>
> >>> the Processing time of the
fir1/firls lowpass filters is very long (20
minutes for 66 channels SSD and I am looking
for ways to shorten it. Is there any way to
shorten it by changing the code for using
parallel computingqGPU computing? will
EEGlab use parallel computing in next
versions?<br>
> >>> If not, what are the best
hardware specs to run these filters? I tried
running it on an i7 3930k with 64Gb RAM
system and it didn't shorten the time vs. my
i5 3470 4Gb RAM system. I also tried to run
this filter on a workstation system with
Xeon CPU and it shortened the running time,
but not significantly. I found that using
SSD shortens the time significantly. Do you
have any other hardware specs
recommendations?<br>
> >>><br>
> >>> Thank you<br>
> >>> Avi<br>
> >><br>
> ><br>
><br>
><br>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Eeglablist page: <a moz-do-not-send="true"
href="http://sccn.ucsd.edu/eeglab/eeglabmail.html"
target="_blank">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>
To unsubscribe, send an empty email to <a
moz-do-not-send="true"
href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu">eeglablist-unsubscribe@sccn.ucsd.edu</a><br>
For digest mode, send an email with the subject "set
digest mime" to <a moz-do-not-send="true"
href="mailto:eeglablist-request@sccn.ucsd.edu">eeglablist-request@sccn.ucsd.edu</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">Makoto Miyakoshi<br>
Swartz Center for Computational Neuroscience<br>
Institute for Neural Computation, University of California
San Diego<br>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Eeglablist page: <a class="moz-txt-link-freetext" href="http://sccn.ucsd.edu/eeglab/eeglabmail.html">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a>
To unsubscribe, send an empty email to <a class="moz-txt-link-abbreviated" href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu">eeglablist-unsubscribe@sccn.ucsd.edu</a>
For digest mode, send an email with the subject "set digest mime" to <a class="moz-txt-link-abbreviated" href="mailto:eeglablist-request@sccn.ucsd.edu">eeglablist-request@sccn.ucsd.edu</a></pre>
</blockquote>
</body>
</html>