Intel® oneAPI Base Toolkit
Support for the core tools and libraries within the base toolkit that are used to build and deploy high-performance data-centric applications.
417 Discussions

__m256i variable watch internal structure

SGold21
Beginner
1,946 Views

I am working with Visual Studio 2017

When I use Intel Compiler 2019 - I can see the internal structure of of a __m256i - as signed/unsigned 8,16,32,64 bits

 

SGold21_0-1622439131225.png

The same environment, OneAPI, I can see only 64 bits.

 

SGold21_1-1622441813574.png

Any way to handle this?
Thanks

0 Kudos
9 Replies
MRajesh_intel
Moderator
1,927 Views

Hi,


Could you please provide the details of the compiler used and minimal reproducer code, if possible. Also, check whether the function is present in the header file used.


Regards

Rajesh.


0 Kudos
SGold21
Beginner
1,918 Views

Please find below all the details of the Visual Studio

Intel compiler is oneApi 2021.2

You can do 

#include <immintrin.h>

 

and 

 

__m256i x = _mm256_set_epi32(1,2,3,4,5,6,7,8);

 

Again - the problem is with oneAPI. With the 2019 version it works.

 

 

 

 

 

 

 

Microsoft Visual Studio Community 2017
Version 15.9.29
VisualStudio.15.Release/15.9.29+28307.1300
Microsoft .NET Framework
Version 4.8.04084

Installed Version: Community

Visual C++ 2017 00369-60000-00001-AA952
Microsoft Visual C++ 2017

ArrayPlotter 0.8
Array visualisation from within the debugger for C#/C++

ASP.NET and Web Tools 2017 15.9.04012.0
ASP.NET and Web Tools 2017

Azure App Service Tools v3.0.0 15.9.03024.0
Azure App Service Tools v3.0.0

C# Tools 2.10.0-beta2-63501-03+b9fb1610c87cccc8ceb74a770dba261a58e39c4a
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Common Azure Tools 1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

Cookiecutter 15.9.18254.1
Provides tools for finding, instantiating and customizing templates in cookiecutter format.

IncrediBuild Build Acceleration 1.5.0.3
IncrediBuild effectively reduces compilation and development times by up to 90%.

Intel Libraries for oneAPI Package ID: w_oneAPI_2021.2.0.243
Intel Libraries for oneAPI – toolkit version: 2021.2.0, extension version 21.1.0.15, Package ID: w_oneAPI_2021.2.0.243, Copyright © 2019-2021 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.

Intel® Advisor 2021.2 609067
Intel® Advisor 2021.2, (build 609067), Copyright © 2009-2021 Intel Corporation. All rights reserved.

Intel® C++ Compiler Package ID: w_oneAPI_2021.2.0.243
Intel® C++ Compiler – toolkit version: 2021.2.0, extension version 21.0.15, Package ID: w_oneAPI_2021.2.0.243, Copyright © 2002-2021 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.

Intel® C++ Compiler Classic Package ID: w_oneAPI_2021.2.0.243
Intel® C++ Compiler Classic – toolkit version: 2021.2.0, extension version 19.2.6.15, Package ID: w_oneAPI_2021.2.0.243, Copyright © 2002-2021 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.

Intel® Distribution for GDB* 1.0
Provides debugging capabilities for compute shaders running on the Intel GPU.

Intel® DPC++ Compatibility Tool Package ID: w_oneAPI_2021.2.0.221
Intel® DPC++ Compatibility Tool – toolkit version: 2021.2.0, extension version 2021.1.0.15, Package ID: w_oneAPI_2021.2.0.221, Copyright © 2019-2021 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.

Intel® Inspector 2021.2 605251
Intel® Inspector 2021.2, (build 605251), Copyright © 2009-2021 Intel Corporation. All rights reserved.

Intel® oneAPI DPC++ Compiler Package ID: w_oneAPI_2021.2.0.243
Intel® oneAPI DPC++ Compiler – toolkit version: 2021.2.0, extension version 21.1.0.15, Package ID: w_oneAPI_2021.2.0.243, Copyright © 2019-2021 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.

Intel® oneAPI Menu & Samples 1.1.398
Intel® oneAPI Visual Studio Menu & Samples Extension

Intel® Parallel Studio XE 2019 Update 4 Composer Edition for C++ Windows* Package ID: w_comp_lib_2019.4.245
Intel® Parallel Studio XE 2019 Update 4 Composer Edition for C++ Windows* Integration for Microsoft* Visual Studio* 2017, Version 19.0.6.15, Copyright © 2002-2019 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.

Intel® Performance Libraries Package ID: w_comp_lib_2019.4.245
Intel® Performance Libraries – extension version 19.2.6.15, Package ID: w_comp_lib_2019.4.245, Copyright © 2002-2021 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.

Intel® VTune™ Profiler 2021 615922
Intel® VTune™ Profiler 2021, (build 615922), Copyright © 2009-2021 Intel Corporation. All rights reserved.

JavaScript Language Service 2.0
JavaScript Language Service

JsonViewer 1.0
JSON viewer

Microsoft Azure Tools 2.9
Microsoft Azure Tools for Microsoft Visual Studio 2017 - v2.9.20417.1

Microsoft JVM Debugger 1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft MI-Based Debugger 1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual C++ Wizards 1.0
Microsoft Visual C++ Wizards

Microsoft Visual Studio VC Package 1.0
Microsoft Visual Studio VC Package

MLGen Package Extension 1.0
MLGen Package Visual Studio Extension Detailed Info

NuGet Package Manager 4.6.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.

ProjectServicesPackage Extension 1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

Python 15.9.18254.1
Provides IntelliSense, projects, templates, debugging, interactive windows, and other support for Python developers.

Python - Django support 15.9.18254.1
Provides templates and integration for the Django web framework.

Python - IronPython support 15.9.18254.1
Provides templates and integration for IronPython-based projects.

Python - Profiling support 15.9.18254.1
Profiling support for Python projects.

ResourcePackage Extension 1.0
ResourcePackage Visual Studio Extension Detailed Info

ResourcePackage Extension 1.0
ResourcePackage Visual Studio Extension Detailed Info

Test Adapter for Boost.Test 1.0
Enables Visual Studio's testing tools with unit tests written for Boost.Test. The use terms and Third Party Notices are available in the extension installation directory.

Test Adapter for Google Test 1.0
Enables Visual Studio's testing tools with unit tests written for Google Test. The use terms and Third Party Notices are available in the extension installation directory.

TypeScript Tools 15.9.30718.2001
TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools 2.10.0-beta2-63501-03+b9fb1610c87cccc8ceb74a770dba261a58e39c4a
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual Studio Code Debug Adapter Host Package 1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio

Visual Studio Tools for CMake 1.0
Visual Studio Tools for CMake

VSDebugPro 1.0
VSDebugPro - Enhanced debugging

0 Kudos
cw_intel
Moderator
1,902 Views

Thanks for contacting Intel® Support. Let me reproduce first.


0 Kudos
cw_intel
Moderator
1,879 Views

Hi ,

Analyzing the  preprocessed files, find the dpcpp and icl using different immintrin.h, and the definition of ' __m256i ' are different.


the definition of ' __m256i' that used by icl compiler is,

typedef union __declspec(align(32)) __declspec(intrin_type) __m256i {

#line 42 "C:\\PROGRA~2\\Intel\\oneAPI\\compiler\\latest\\windows\\bin\\intel64\\..\\..\\compiler\\include\\icc\\immintrin.h"

  __int8       m256i_i8[32];

  __int16       m256i_i16[16];

  __int32       m256i_i32[8];

  __int64       m256i_i64[4];

  unsigned __int8   m256i_u8[32];

  unsigned __int16  m256i_u16[16];

  unsigned __int32  m256i_u32[8];

  unsigned __int64  m256i_u64[4];

} __m256i;


But the definition of ' __m256i' that used by dpcpp compiler is,

typedef long long __m256i __attribute__((__vector_size__(32), __aligned__(32)));


So when you use Intel Compiler 2019 , you can see the internal structure of of a __m256i - as signed/unsigned 8,16,32,64 bits. However, you can see only 64 bits with oneAPI.


0 Kudos
cw_intel
Moderator
1,856 Views

Hi,


Did my answer solve your question?


0 Kudos
SGold21
Beginner
1,841 Views

I understand your point.

But it is very detrimental to the debugging process. I rarely use __m256i as 4x64 bits - but usually as 32 or 16 bits signed or unsigned. 
I need to see the values at the resolution that I use in order to debug.

Thanks

0 Kudos
cw_intel
Moderator
1,820 Views

Hi,

I get your point. But for the debugging process now, you can use a pointer to see the value, like  int* d = (int*)(&x); . And at the same time, I will deliver your feedback to the related team to to see if there are further considerations for improvement at this point.


Thanks. ​




0 Kudos
SantoshY_Intel
Moderator
1,183 Views

Hi,

 

Thank you for your feedback. We have provided your feedback to the relevant team. At this moment there is no visibility when it will be implemented and available for use. Please let me know if we can go ahead and close this case.

 

Thanks & Regards,

Santosh

 

 

0 Kudos
SantoshY_Intel
Moderator
1,135 Views

Hi,


We are closing this thread. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.


Thanks & Regards,

Santosh



0 Kudos
Reply