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 [email protected], "brian_z111" <[EMAIL PROTECTED]> 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 [email protected], "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 [email protected], "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: <[email protected]> > > > 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 [email protected], "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 > > > > > > > > > > > > > > > > > >
