[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: AmiBroker 5.14.0 BETA released



PureBytes Links

Trading Reference Links

It is kind of shocking that the $100 video card that came with my 
system has 64 floating point cores with a high bandwidth connection 
to dedicated memory.  These are the "shaders" used to render 3d 
graphics.  Each of these cores can perform a floating point 
multiply/add per cycle.  Better cards have even more cores.  

NVIDIA released a C API about a year ago to allow the cores to allow 
the shaders to be used for general purpose computing.  Here is a link:

http://www.nvidia.com/object/cuda_get.html

The program model is very interesting.  It would be possible, but not 
very easy to have a dll load data into the graphics card and complete 
the computation there, then move the result back to API to provide 
the backtest framework.  Many applications that have done this, 
including computational finance report a 40 - 100 fold performance 
improvement.

However, the programming model is very different.  It depends on many 
threads taking the same execution path and kept in sync.  Each set of 
8 cores share the same thread scheduler.  It works best when the 
number of threads is much larger than the number of cores.  A 
reasonable mapping would be to map each symbol to a separate thread 
and run parallel.  So, a backtest of 1,000 symbols would result in 
1,000 threads running at the same time.  

Memory access is about 100 times more expensive than a floating point 
operation.  So the threads must have high calculation "density" so 
that many calculations are performed for each memory load.  Also 
enough threads must be available so that other threads may be 
scheduled to hide the memory latency.  To perform peak memory 
bandwidth, loads and stores have to be planed so that memory io from 
many threads can be combined into a single memory transaction.  Also, 
very little cache memory.  They used the transistors to built more 
cores rather than cache.  

So, it is very different than the array streaming processing used by 
AMI...  And only works if you are running on a late model NVIDIA 
card.  

So, it would be MUCH more complex to use than just re-writing your 
calculation in C.  Still, I am tempted to do it just because it is 
cool.  Imagine 500 step walkforward tests where the run time per step 
drops from several hours to a minute or so. 

--- In amibroker@xxxxxxxxxxxxxxx, "brian_z111" <brian_z111@xxx> wrote:
>
> > Too bad that we cant run the calculation on the 64 idle cores in 
> >the 
> > video card using the CUDA api.  Now that would be cool.
> 
> Now, theres an interesting thought!
> 
> I'll leave the computer department to sort that one out while I 
dream 
> up some more applications for all of this power we are going to 
have 
> (Tomasz said, from the time I started with AB, that I wanted the 
MP3 
> player, and everything else as well, so it looks as if we are now 
> close to having the means to deliver it all, plus some).
> 
> brian_z
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "dloyer123" <dloyer123@> wrote:
> >
> > Thanks for responding. 
> > 
> > On further testing, it looks like the dll is only passed the 
> partial 
> > array, implying that dll's will also get the benifit of having 
less 
> > data to process.
> > 
> > I am hoping to cache partial results in my dll to avoid 
> recalcuating 
> > values that do not depend on opimization parameters.  It looks 
like 
> I 
> > will need to detect when the first/last bar change and flush my 
> cache.
> > 
> > Too bad that we cant run the calculation on the 64 idle cores in 
> the 
> > video card using the CUDA api.  Now that would be cool.
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@> 
> > wrote:
> > >
> > > Hello,
> > > 
> > > Thank you for your kind words.
> > > 
> > > Everything you need to know about QuickAFL:
> > > http://www.amibroker.com/kb/2008/07/03/quickafl/
> > > 
> > > Best regards,
> > > Tomasz Janeczko
> > > amibroker.com
> > > ----- Original Message ----- 
> > > From: "dloyer123" <dloyer123@>
> > > To: <amibroker@xxxxxxxxxxxxxxx>
> > > Sent: Friday, July 04, 2008 5:33 PM
> > > Subject: [amibroker] Re: AmiBroker 5.14.0 BETA released
> > > 
> > > 
> > > > Love the new Quick AFL support!  It improved my execution 
time 
> > from 
> > > > 41sec to 25sec for each optimization pass.  It will shave 
hours 
> > off 
> > > > each walkforward step.
> > > > 
> > > > The new optimizer is a also a huge improvment and makes walk 
> > forward 
> > > > testing practical.  
> > > > 
> > > > A couple of questions for you:
> > > > Is the full array still passed to a DLL, or just the part of 
> the 
> > > > array that Quick AFL is using?  It looks like the full 
array.  
> Is 
> > > > there any way that a dll can tell what part to use/ignore?
> > > > 
> > > > Keep up the great work.  Ami has taken a giant leap foward in 
> the 
> > > > last few months. 
> > > > 
> > > > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@> 
> > > > wrote:
> > > >>
> > > >> Hello,
> > > >> 
> > > >> AmiBroker 5.14.0 BETA is released now:
> > > >> http://www.amibroker.com/devlog/2008/07/04/amibroker-5140-
beta-
> > > > released/
> > > >> 
> > > >> CHANGES IN VERSION 5.14.0 (as compared to 5.13.0): 
> > > >> 
> > > >>   1.. added support for Quarterly and Yearly intervals in 
all 
> > parts 
> > > > of the program 
> > > >>   2.. Changes to drawing made in v5.13 caused improper 
drawing 
> > > > lines located PAST the last available quote (trendlines and 
> > > > pitchforks) when timestamping method was "START TIME of 
> > interval". 
> > > > This is fixed now. 
> > > >>   3.. Fixed AddSummaryRows so 'onlycols' parameter default 
> > (zero) 
> > > > is applied properly 
> > > >>   4.. Implemeted "Select all" via Ctrl-A keyboard shortcut 
for 
> > all 
> > > > list (result list in AA for example) 
> > > >>   5.. Mouse cursor shape (moving/sizing) reflects the 
selected 
> > > > study priority when more than one study exists under mouse 
> > position 
> > > >>   6.. new multiple Volume At Price charts at user-defined 
> points 
> > > > via new PlotVolumeOverlayA function 
> > > >>   7.. QuickAFL can now be used in Automatic Analysis 
> (Settings: 
> > > > General: "Use QuickAFL" - check this box) - this can speed up 
> > > > explorations, scans and backtests by factor of 2+ if range is 
> > less 
> > > > than "all quotations". More on this: 
> > > > http://www.amibroker.com/kb/quickafl 
> > > >>   8.. Range Bars compression now uses TickSize as "1R step". 
> > > > TickSize defined in the Symbol Information, if its value is 
> zero, 
> > > > then 1R would be equivalent to 0.01 movement (for backward 
> > compat) 
> > > >>   9.. selecting date in multiple linked charts is now faster 
> > > > because redraw is not made when selected line in higher 
> > compressed 
> > > > interval remains in place 
> > > >>   10.. selector line in linked charts works OK now, 
regardless 
> > of 
> > > > selected time compression timestamping method 
> > > >>   11.. SetBarsRequired accepts now values -2 in special 
> meaning: 
> > > > reference ALL bars 
> > > >>   12.. Sometimes progress bar did not show the name of 
> > optimization 
> > > > engine used. Now it is fixed 
> > > >>   13.. Status("ActionEx") provides more codes than Status
> > ("action") 
> > > > to detect special executions states 
> > > >>   14.. Streaming chart update could stall if trend line 
handle 
> > was 
> > > > clicked in attempt to resize and released in the very same 
> > position 
> > > > (without moving the mouse). Now it is fixed. 
> > > >>   15.. TimeFrameMode() now supports mode == 4 - which 
> expresses 
> > > > RANGE bars in TickSize units (as opposed to mode 3 that uses 
> > dollars 
> > > > for backward compatiblity) 
> > > >>   16.. when display chart timing option is turned on and RT 
> > stream 
> > > > is active the application STATUS BAR now displays TOTAL time 
> for 
> > all 
> > > > charts, it should be BELOW 1 second for RT trading 
> > > >> 
> > > >> Best regards,
> > > >> Tomasz Janeczko
> > > >> amibroker.com
> > > >>
> > > > 
> > > > 
> > > > 
> > > > ------------------------------------
> > > > 
> > > > Please note that this group is for discussion between users 
> only.
> > > > 
> > > > To get support from AmiBroker please send an e-mail directly 
to 
> > > > SUPPORT {at} amibroker.com
> > > > 
> > > > For NEW RELEASE ANNOUNCEMENTS and other news always check 
> DEVLOG:
> > > > http://www.amibroker.com/devlog/
> > > > 
> > > > For other support material please check also:
> > > > http://www.amibroker.com/support.html
> > > > Yahoo! Groups Links
> > > > 
> > > > 
> > > >
> > >
> >
>



------------------------------------

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/