clMathLibraries / clBLAS

a software library containing BLAS functions written in OpenCL
Apache License 2.0
842 stars 240 forks source link

offline compile for Hawaii #131

Open longlee0622 opened 9 years ago

longlee0622 commented 9 years ago

Hi, I'm trying to follow the steps in this post to repro the good SGEMM perf: http://developer.amd.com/community/blog/2015/06/23/benchmarking-clblas-sgemm-on-the-amd-firepro-professional-graphics-card/

Can I do offline compile for Hawaii even if I don't have a Hawaii GPU installed? I tried to build clBLAS on 2 systems: one with Fury X and the other one without any AMD GPU attached, both of which failed with Visual Studio error: Error 1 error C2065: 'CL_CONTEXT_OFFLINE_DEVICES_AMD' : undeclared identifier [D:\jonasl\clBLAS\src\build\library\bingen-prefix\src\bingen-build\bingen.vcxproj] D:\jonasl\clBLAS\src\build\library\bingen-prefix\src\bingen\bingen.cpp 370 1 bingen (ExternalProjectTargets\bingen\bingen)

Anyone knows what is wrong? How should I resolve this issue?

Thanks!

TimmyLiu commented 9 years ago

Unfortunately with current public driver one is required to have the device in the system when doing offline compilation with OpenCL 2.0. And we do need OpenCL 2.0 compiler (not the API) to get the performance you see at the blog.

longlee0622 commented 9 years ago

Does clBLAS support offline compile for Fiji? Any optimized GEMM kernels for my Fury X?

TimmyLiu commented 9 years ago

Not at the moment.

TimmyLiu commented 9 years ago

FYI you can offline compile kernels for FIJI now (develop branch). For example something like the picture below will precompile sgemm column major NT kernels for the device 0 on the system with OpenCL 2.0 compiler. If device 0 is Fiji then it will be compiled for Fiji. precompile

Also if precompile is not chosen the same kernel will be used but you would need to pay a cost of compiling kernels at run time.