cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

jski
Journeyman III

Problem with brcc?

I am trying to build double_precision_optimized_matmult with a call to cblas_dgemm(...) from Intel's MKL to compare GPU vs CPU times. I need to use MKL_INT, CBLAS_ORDER, and CBLAS_TRANSPOSE which are #define'd in mkl_types.h. Unfortunately I can't remedy this by editing config.mk and/or main.mk in /usr/local/amdbrook/samples/utils/build. Apparently the brcc compiler/preprocessor rejects MKL_INT, CBLAS_ORDER, and CBLAS_TRANSPOSE before the C-preprocessor (via g++) is ever invoked - even though I #include <mkl_types.h>. How can I get brcc to see MKL_INT, CBLAS_ORDER, and CBLAS_TRANSPOSE #define'd in mkl_types.h?

---jski

 

0 Likes
1 Reply
jski
Journeyman III

Responses from the Stream Development team:

 

"I think the current version of brcc doesn’t gracefully handle preprocessor directives. If you need access to predefined values in Brook code, you might want to work around it using preset variables."

 

"In 1.3, you'll have access to a C++ API and this will allow you to more easily separate your code into kernel code in .br files and non-kernel code in .cpp files. Then, you should be able to use preprocessor directives normally in non-kernel code because those pieces of code will not need to go through brcc."

 

---jski

0 Likes