Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
13 Views

Minimal symbol differences between msvc and icc

ICC latest
??R?$AdjustContrastv2@UGpuDevice@Eigen@@@functor@tensorflow@@QEAAXAEBUGpuDevice@Eigen@@V?$TensorMap@V?$Tensor@$$CBM$03$00_J@Eigen@@$0BA@UMakePointer@2@@4@V?$TensorMap@V?$TensorFixedSize@$$CBMU?$Sizes@$$V@Eigen@@$00_J@Eigen@@$0BA@UMakePointer@2@@4@V?$TensorMap@V?$Tensor@M$03$00_J@Eigen@@$0BA@UMakePointer@2@@4@@Z

MSVC latest
??R?$AdjustContrastv2@UGpuDevice@Eigen@@@functor@tensorflow@@QEAAXAEBUGpuDevice@Eigen@@V?$TensorMap@V?$Tensor@$$CBM$03$00_J@Eigen@@$0BA@UMakePointer@2@@4@V?$TensorMap@V?$TensorFixedSize@$$CBMU?$Sizes@$S@Eigen@@$00_J@Eigen@@$0BA@UMakePointer@2@@4@V?$TensorMap@V?$Tensor@M$03$00_J@Eigen@@$0BA@UMakePointer@2@@4@@Z

The differences are marked.

'Sizes' struct is defined like this:
template <typename std::ptrdiff_t... Indices>
struct Sizes {...}

This is a problem, because I can't use ICC as host compiler for CUDA in windows, so there will be mismatches in the symbols which leads to linker errors.
It was asked a lot of times, but we still have no real ICC support for CUDA. 

 

0 Kudos
1 Reply
Highlighted
New Contributor I
13 Views

I had a similar issue with OpenMesh 6.3. I needed to compile both OpenMesh and my code with the Intel Compiler to avoid link errors.

You could not, for example, compile OpenMesh with MSVC and client code with ICC without getting link errors with one particular C++ class/struct.

 

 

0 Kudos