Hi Dave,<div>I'd like to say I had some success recreating your example, but instead I've had a series of failures that probably only indicate two things: your code doesn't yet work well on Windows and/or I have no idea what I'm doing.</div>
<div><br></div><div>I started on a linux virtual machine, but didn't get past the stage of installing OpenCL because GPU calcs are apparently not supported on virtual machines. Then I tried a linux cluster, but it doesn't have a supported GPU. Then I tried using the BFGS update on the CPU on the linux virtual machine. However, it's not as easy as just setting USE_GPU_FLAG=0 because without being able to include OpenCL and CL, you get lots of errors like "newfmin.cpp:247:3: error: ‘cl_int’ does not name a type"<div>
<br></div><div>I then tried compiling on some Windows computers (one with Nvidia GPU and MS Visual C++, and another with an AMD GPU and MingGW). Those efforts didn't bring any more luck. With both Visual C++ and MinGW, I got similar errors in newfmin.cpp (pasted below). I don't know enough to make the errors go away, so I think my next step will be to wait until I'm in front of a non-virtual linux computer.</div>
<div>-Ian</div><div><br></div><div>#### some errors while compiling the new newfmin.cpp in Windows ####<br><div><br></div></div><div>VC error snippet:</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><div>..\..\..\..\src\linad99\newfmin.cpp(214) : error C4430: missing type specifier -</div></div></div><div><div> int assumed. Note: C++ does not support default-int</div>
</div><div><div>..\..\..\..\src\linad99\newfmin.cpp(214) : error C2146: syntax error : missing '</div></div><div><div>;' before identifier 'MAX_SOURCE_SIZE'</div></div><div><div>..\..\..\..\src\linad99\newfmin.cpp(258) : warning C4512: 'opencl_manager' : ass</div>
</div><div><div>ignment operator could not be generated</div></div><div><div><br></div></div></blockquote>MinGW error snippet:<blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>newfmin.cpp:214:9: error: 'uint' does not name a type</div>
</div><div><div>newfmin.cpp: In constructor 'opencl_manager::opencl_manager()':</div></div><div><div>newfmin.cpp:282:40: error: class 'opencl_manager' does not have any field named</div></div><div><div>'MAX_SOURCE_SIZE'</div>
</div><div><div>newfmin.cpp: In member function 'cl_int opencl_manager::LoadKernelSource(const c</div></div><div><div>har*)':</div></div><div><div>newfmin.cpp:298:31: error: 'MAX_SOURCE_SIZE' was not declared in this scope</div>
</div></blockquote><div><div><br></div><div><br><div><div class="gmail_quote">On Sat, May 12, 2012 at 8:31 AM, dave fournier <span dir="ltr"><<a href="mailto:davef@otter-rsch.com" target="_blank">davef@otter-rsch.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Has anyone else actually got this example to work?<br>
<br>
Some advice. Older GPU's (whatever that is) probably<br>
do not support double precision.<br>
<br>
WRT using the BFGS update on the CPU. It does not seem<br>
to perform as well as doing iton the GPU. I think this is<br>
due to roundoff error. The CPU is carrying out additions in a different<br>
way. It may be that with say 4K or more parameters and this<br>
(artificial) example roundoff error becomes important.<br>
<br>
I stored the matrix by rows. It is now appears that it should be stored<br>
by columns for the fastest matrix * vector multiplication.<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
Developers mailing list<br>
<a href="mailto:Developers@admb-project.org" target="_blank">Developers@admb-project.org</a><br>
<a href="http://lists.admb-project.org/mailman/listinfo/developers" target="_blank">http://lists.admb-project.org/<u></u>mailman/listinfo/developers</a><br>
</blockquote></div><br>
</div>
</div>
</div></div>