手頭上的項目用到了MIC,作爲一個新的集成衆核協處理器,它非常容易上手,對代碼做很小的修改就能在MIC上跑出很好的效果。
今天調試程序時,出現瞭如下錯誤,在此處做個記錄:
offload error :process on the device 0 was terminated by signal 11
網上很有太多資料,出現這種情況的原因可能很多。
逐句調試後發現我程序中的問題語句,
_mm512_store_epi32(void* mt, __m512i v1);
指針mt必須64位對齊。
附:
_mm512_store_epi32/_mm512_mask_store_epi32
Stores int32 vector. Corresponding instruction is VMOVDQA32. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).
Syntax
Without Mask extern void __cdecl _mm512_store_epi32(void* mt, __m512i v1); |
With Mask extern void __cdecl _mm512_mask_store_epi32(void* mt, __mmask16 k1, __m512i v1); |
Arguments
v1 |
source vector to store elements from |
k1 |
writemask |
mt |
memory location to store vector elements (must be 64-byte aligned) |
Description
Stores 16 32-bit integer elements of int32 vector v1 to the memory address mt . The address mt must be 64-byte-aligned.
In the masked variant, only those elements with the corresponding bit set in vector mask k1 are stored to memory. Elements in the destination memory vector with the corresponding bit clear in k1 retain their previous value.
Returns
Returns nothing.