Relying on the gui for github gets me every time. Working now, looks great! On Aug 13, 2014 9:09 PM, "Namik Karovic" <[email protected]> wrote:
> Hey Matt, > > That looks like you didn't update Benchmark's ViennaCL copy in the > external/viennacl folder. Just navigate to that folder with cmd and do a > git pull. That should update ViennaCL and fix this. > > Regards, Namik > > > On Thu, Aug 14, 2014 at 1:59 AM, Matthew Musto <[email protected]> > wrote: > >> A bit off topic, but I just tried to build the latest version of the >> benchmark. Got a number of errors... >> >> If memory serves, Karli modified viennacl to make these functions >> public. Were those changes not picked up in the standalone gui benchmark >> project? >> >> Error 16 error C2248: 'viennacl::ocl::device::convert_to_string' : >> cannot access private member declared in class 'viennacl::ocl::device' >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 287 1 ViennaCL_Benchmark >> Error 19 error C2248: >> 'viennacl::ocl::device::device_type_to_string' : cannot access private >> member declared in class 'viennacl::ocl::device' >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 381 1 ViennaCL_Benchmark >> Error 13 error C2248: >> 'viennacl::ocl::device::exec_capabilities_to_string' : cannot access >> private member declared in class 'viennacl::ocl::device' >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 203 1 ViennaCL_Benchmark >> Error 18 error C2248: 'viennacl::ocl::device::fp_config_to_string' >> : cannot access private member declared in class 'viennacl::ocl::device' >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 378 1 ViennaCL_Benchmark >> Error 15 error C2248: >> 'viennacl::ocl::device::local_mem_type_to_string' : cannot access private >> member declared in class 'viennacl::ocl::device' >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 254 1 ViennaCL_Benchmark >> Error 14 error C2248: >> 'viennacl::ocl::device::mem_cache_type_to_string' : cannot access private >> member declared in class 'viennacl::ocl::device' >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 214 1 ViennaCL_Benchmark >> Error 17 error C2248: >> 'viennacl::ocl::device::queue_properties_to_string' : cannot access private >> member declared in class 'viennacl::ocl::device' >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 375 1 ViennaCL_Benchmark >> 25 IntelliSense: function >> "viennacl::ocl::device::convert_to_string" (declared at line 1185 of >> "C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl/ocl/device.hpp") >> is inaccessible >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 287 97 ViennaCL_Benchmark >> 28 IntelliSense: function >> "viennacl::ocl::device::device_type_to_string" (declared at line 1205 of >> "C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl/ocl/device.hpp") >> is inaccessible >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 381 97 ViennaCL_Benchmark >> 22 IntelliSense: function >> "viennacl::ocl::device::exec_capabilities_to_string" (declared at line 1150 >> of >> "C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl/ocl/device.hpp") >> is inaccessible >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 203 97 ViennaCL_Benchmark >> 27 IntelliSense: function >> "viennacl::ocl::device::fp_config_to_string" (declared at line 1127 of >> "C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl/ocl/device.hpp") >> is inaccessible >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 378 97 ViennaCL_Benchmark >> 24 IntelliSense: function >> "viennacl::ocl::device::local_mem_type_to_string" (declared at line 1174 of >> "C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl/ocl/device.hpp") >> is inaccessible >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 254 97 ViennaCL_Benchmark >> 23 IntelliSense: function >> "viennacl::ocl::device::mem_cache_type_to_string" (declared at line 1161 of >> "C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl/ocl/device.hpp") >> is inaccessible >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 214 97 ViennaCL_Benchmark >> 26 IntelliSense: function >> "viennacl::ocl::device::queue_properties_to_string" (declared at line 1194 >> of >> "C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl/ocl/device.hpp") >> is inaccessible >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.cpp >> 375 97 ViennaCL_Benchmark >> Warning 1 warning : Z-order assignment: 'verticalSpacer_2' is not a >> valid widget. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\ui\mainwindow.ui >> 1 1 ViennaCL_Benchmark >> Warning 8 warning C4005: 'BENCHMARK_VECTOR_SIZE' : macro >> redefinition >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\benchmarks\benchmark_vector.h >> 26 1 ViennaCL_Benchmark >> Warning 10 warning C4005: 'BENCHMARK_VECTOR_SIZE' : macro >> redefinition >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\benchmarks\benchmark_vector.h >> 26 1 ViennaCL_Benchmark >> Warning 12 warning C4005: 'BENCHMARK_VECTOR_SIZE' : macro >> redefinition >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\benchmarks\benchmark_vector.h >> 26 1 ViennaCL_Benchmark >> Warning 21 warning C4005: 'BENCHMARK_VECTOR_SIZE' : macro >> redefinition >> c:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\src\benchmarks\benchmark_vector.h >> 26 1 ViennaCL_Benchmark >> Warning 5 warning C4267: 'initializing' : conversion from 'size_t' >> to 'unsigned int', possible loss of data >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\tools\adapter.hpp >> 356 1 ViennaCL_Benchmark >> Warning 2 warning C4996: 'getenv': This function or variable may be >> unsafe. Consider using _dupenv_s instead. To disable deprecation, use >> _CRT_SECURE_NO_WARNINGS. See online help for details. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\ocl\context.hpp >> 382 1 ViennaCL_Benchmark >> Warning 3 warning C4996: 'getenv': This function or variable may be >> unsafe. Consider using _dupenv_s instead. To disable deprecation, use >> _CRT_SECURE_NO_WARNINGS. See online help for details. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\ocl\context.hpp >> 382 1 ViennaCL_Benchmark >> Warning 4 warning C4996: 'getenv': This function or variable may be >> unsafe. Consider using _dupenv_s instead. To disable deprecation, use >> _CRT_SECURE_NO_WARNINGS. See online help for details. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\ocl\context.hpp >> 382 1 ViennaCL_Benchmark >> Warning 6 warning C4996: 'getenv': This function or variable may be >> unsafe. Consider using _dupenv_s instead. To disable deprecation, use >> _CRT_SECURE_NO_WARNINGS. See online help for details. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\ocl\context.hpp >> 382 1 ViennaCL_Benchmark >> Warning 7 warning C4996: 'getenv': This function or variable may be >> unsafe. Consider using _dupenv_s instead. To disable deprecation, use >> _CRT_SECURE_NO_WARNINGS. See online help for details. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\ocl\context.hpp >> 382 1 ViennaCL_Benchmark >> Warning 9 warning C4996: 'getenv': This function or variable may be >> unsafe. Consider using _dupenv_s instead. To disable deprecation, use >> _CRT_SECURE_NO_WARNINGS. See online help for details. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\ocl\context.hpp >> 382 1 ViennaCL_Benchmark >> Warning 11 warning C4996: 'getenv': This function or variable may >> be unsafe. Consider using _dupenv_s instead. To disable deprecation, use >> _CRT_SECURE_NO_WARNINGS. See online help for details. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\ocl\context.hpp >> 382 1 ViennaCL_Benchmark >> Warning 20 warning C4996: 'getenv': This function or variable may >> be unsafe. Consider using _dupenv_s instead. To disable deprecation, use >> _CRT_SECURE_NO_WARNINGS. See online help for details. >> C:\viennacl-benchmark-gui-master\viennacl-benchmark-gui\external\viennacl-dev\viennacl\ocl\context.hpp >> 382 1 ViennaCL_Benchmark >> >> >> >> On Wed, Aug 13, 2014 at 4:47 PM, Namik Karovic <[email protected]> >> wrote: >> >>> Hey hey, >>> >>> I admit I may have panicked a bit too much. After playing around with it >>> a little more, I now understand why it reported different context ids. >>> >>> *They weren't context ids, they were platform ids.* I was comparing my >>> context counter to the viennacl::ocl::current_context().platform_index(). >>> Those two are obviously completely different things. Context switching does >>> work fine after all. Consequently, platform/device switching works fine too. >>> >>> >>> Omg, this looks like the OpenCL SDK died. I had some other user report >>>> on a similar topic on Windows, which I was never able to reproduce on >>>> Linux. Can you please make sure that you use the latest drivers and OpenCL >>>> SDK? We might have to file a bug report here... >>> >>> >>> Now this is a completely different story. I'll try the newest OpenCL SDK >>> and see what happens. >>> >>> >>> Any chance you can send me the full output? >>> >>> >>> Sure, I'll send it right away. >>> >>> >>> This is a fallback mechanism: you can switch to *any* context ID you >>>> want. If the context has been customized using setup_context() and friends, >>>> then it will create the context with this customized setup. Otherwise it >>>> will create a context with just the default device. This is mostly >>>> convenience for multi-threaded use case scenarios or applications where >>>> totally unrelated operations should be fed to different contexts (rather >>>> than just command queues). >>> >>> >>> Ah, I see. That's a nice feature now that I think about it. Is it >>> documented somewhere in the manual? It might be a good idea to document it >>> so people don't go nuts for no reason, like I did. >>> >>> >>> Regards, Namik >>> >>> >>> On Wed, Aug 13, 2014 at 10:24 PM, Karl Rupp <[email protected]> >>> wrote: >>> >>>> Hi, >>>> >>>> >>>> This error might be due to the ViennaCL-objects created in a >>>>> different context. Do you recreate the ViennaCL-objects for each >>>>> benchmark run? If so, there should be no such problem. >>>>> >>>>> >>>>> Uhmmm, I don't think so. Anyways, that error is gone now that I'm using >>>>> contexts in the proper way. >>>>> >>>> >>>> Ok, I'll check this. >>>> >>>> >>>> >>>> I hope the user can't change the combo box values while the >>>>> benchmark is running... >>>>> >>>>> >>>>> It's only temporary for testing purposes. The real context switching >>>>> will occur when the benchmark is started. >>>>> >>>> >>>> Ah, ok :-) >>>> >>>> >>>> >>>> Yeah this is much better. Here's the new situation: >>>>> I think there's no more duplicate contexts/devices. I've got 3 >>>>> contexts: >>>>> >>>>> Context 0: AMD GPU using AMD SDK -works fine >>>>> Context 1: CPU using AMD SDK -crashes >>>>> Context 2: CPU using Intel SDK - works fine >>>>> >>>>> When using context 1, the program crashes with the following feedback: >>>>> >>>>> -in this particular run, the contexts were setup like this: >>>>> Context id: 0 Context value: 0x87e168 Device name: Tahiti >>>>> Context id: 1 Context value: 0x87e510 Device name: Intel(R) >>>>> Core(TM) i5-2500K CPU @ 3.30GHz >>>>> Context id: 2 Context value: 0x60051e8 Device name: Intel(R) >>>>> Core(TM) i5-2500K CPU @ 3.30GHz >>>>> >>>>> -these two lines are my debug output: >>>>> *1.* Benchmarking... Context id: 0 Context value: 0x87e510 >>>>> *2.* Running on device name: Intel(R) Core(TM) i5-2500K CPU @ >>>>> 3.30GHz >>>>> >>>>> -I'm getting the id >>>>> with viennacl::ocl::current_context().platform_index() and context >>>>> value >>>>> with viennacl::ocl::current_context().handle().get() >>>>> -Notice how it says the id is 0, even though it should be 1, while the >>>>> context value is properly changed to the value of context 1. Also, >>>>> running on context 2, it runs fine, but reports the id to be 1. What's >>>>> the deal here? >>>>> >>>> >>>> Ok, I'll check this myself, I'll need to have a look at the surrounding >>>> code. >>>> >>>> >>>> >>>> -the rest is from ViennaCL: >>>>> Build Status = -2 ( Err = -11 ) >>>>> Log: Internal Error: Storing X86 DLL failed! >>>>> >>>> >>>> Omg, this looks like the OpenCL SDK died. I had some other user report >>>> on a similar topic on Windows, which I was never able to reproduce on >>>> Linux. Can you please make sure that you use the latest drivers and OpenCL >>>> SDK? We might have to file a bug report here... >>>> >>>> >>>> >>>> -then a lot of source code, with this in the middle: >>>>> ViennaCL: FATAL ERROR: Could not find kernel >>>>> >>>>> -and finally, this: >>>>> Number of kernels in program: 0 >>>>> >>>>> vec_mul' from program 'float_ell_matrix' >>>>> >>>>> Invalid parameter passed to C runtime function. >>>>> >>>>> Invalid parameter passed to C runtime function. >>>>> >>>>> terminate called after throwing an instance of 'char const*' >>>>> >>>> >>>> Any chance you can send me the full output? >>>> >>>> >>>> >>>> OK scratch that. And scratch everything I've written so far. I just >>>>> attempted to query contexts 4,5,6,... . And it unfortunately worked! I >>>>> seem to have mysterious extra contexts! I'm totally confused now. >>>>> >>>>> Context id: 0 Context value: 0xc5e168 >>>>> >>>>> Context id: 0 Device name: Tahiti >>>>> >>>>> Context id: 1 Context value: 0xc5e510 >>>>> >>>>> Context id: 1 Device name: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz >>>>> >>>>> Context id: 2 Context value: 0x61051e8 >>>>> >>>>> Context id: 2 Device name: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz >>>>> >>>>> Context id: 3 Context value: 0xa9bdd90 >>>>> >>>>> Context id: 3 Device name: Tahiti >>>>> >>>>> Context id: 4 Context value: 0xa9be0a8 >>>>> >>>>> Context id: 4 Device name: Tahiti >>>>> >>>>> Context id: 5 Context value: 0xa9be3c0 >>>>> >>>>> Context id: 5 Device name: Tahiti >>>>> >>>>> Context id: 6 Context value: 0xa9be6d8 >>>>> >>>>> Context id: 6 Device name: Tahiti >>>>> >>>>> Context id: 7 Context value: 0xa9be9f0 >>>>> >>>>> Context id: 7 Device name: Tahiti >>>>> >>>>> and so on... >>>>> >>>>> What's going on here? >>>>> >>>> >>>> This is a fallback mechanism: you can switch to *any* context ID you >>>> want. If the context has been customized using setup_context() and friends, >>>> then it will create the context with this customized setup. Otherwise it >>>> will create a context with just the default device. This is mostly >>>> convenience for multi-threaded use case scenarios or applications where >>>> totally unrelated operations should be fed to different contexts (rather >>>> than just command queues). >>>> >>>> Best regards, >>>> Karli >>>> >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> ViennaCL-devel mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/viennacl-devel >>> >>> >> >> >> -- >> -------------------- >> Matthew Musto >> [email protected] >> > >
------------------------------------------------------------------------------
_______________________________________________ ViennaCL-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/viennacl-devel
