Does icl 13.0.1.119 support TSX?

Does icl 13.0.1.119 support TSX?

Hello

Intel®Parallel Studio XE 2013 supposes to support TSX accordingly to its release information. But in my case, I don't see that. Maybe it because of misuse of commandline keys or misunderstanding of icl versioing. I don't know what asm compiler exactly is used by icl, but I suppose the one from its distribution.

Experiment was done on 64bit version of Windows with toy assembly routine.

Could someone clarify what is wrong?

c:\all>ver

Microsoft Windows [Version 6.1.7601]

c:\all>icl   /c a.asm
Intel(R) C++ Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.0.1.119 Build 20121008
Copyright (C) 1985-2012 Intel Corporation.  All rights reserved.

a.asm
 Assembling: a.asm
a.asm(14) : error A2008:syntax error : xbegin

a.asm file text:

_DATA SEGMENT
_DATA ENDS
_TEXT SEGMENT
ALIGN 16
PUBLIC test1
test1 PROC
    xbegin l1
l1:    ret 0
test1 ENDP
_TEXT ENDS
END

13 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

Here are a couple of comments:

1. '...to support TSX accordingly to its release information...' Where did you read it? I couldn't find it and what about a link, a quote or more details?

2. Why did you put codes in _TEXT SEGMENT?
...
_TEXT SEGMENT
ALIGN 16
PUBLIC test1
test1 PROC
xbegin l1
l1: ret 0
test1 ENDP
_TEXT ENDS
...

3. I just checked Intel C++ Compiler XE 13.0 User and Reference Guides and Intel TSX ( Intel(R) Transactional Synchronization Extensions ) is supported for CPUs with AVX2 instructions.

4. A test-case (1):
...
void main( void )
{
_asm XBEGIN
_asm XEND
}
...
...Error: Unknown opcode _XBEGIN in asm instruction
...Error: Unknown opcode _XEND in asm instruction
...Internal error: 0_12174
...
failed. Any comments from Intel software engineers? Thanks in advance.

4. TSX intrinsics are declared in immintrin.h header file and a test-case (2):
...
#include "immintrin.h"

void main( void )
{
_xbegin();
_xend();
}
...
was compiled successfully.

 

All the icl compiler does is call Microsoft's macro assembler "ml" since it recognizes that the file is an asm file.

So if ml doesn't recognize the extension then icl won't either.

So this works if the MSVC++ 2012 environment (but not in the MSVC++ 2010 or earlier) environment, i.e.:

!% cat a.asm
_DATA SEGMENT
_DATA ENDS
_TEXT SEGMENT
ALIGN 16
PUBLIC test1
test1 PROC
    xbegin l1
l1:    ret 0
test1 ENDP
_TEXT ENDS
END
!% icl -c a.asm
Intel(R) C++ Compiler XE for applications running on IA-32, Version Mainline Bet
a Build x
Built Jul  8 2010 00:43:41 by jward4 on SPTXPW2012 in F:/cmplr/dev_cfe/dev
Copyright (C) 1985-2010 Intel Corporation.  All rights reserved.

a.asm
 Assembling: a.asm
!%

 

Judy

Here are assembler codes for the test-case(2):

[ 32-bit platform ]
...
_xbegin();
0110FD3D or eax,0FFFFFFFFh
0110FD40 db c7h
0110FD41 clc
0110FD42 add byte ptr [eax],al
0110FD44 add byte ptr [eax],al
0110FD46 mov dword ptr [ebp-3Ch],eax
_xend();
0110FD49 db 0fh
...

[ 64-bit platform ]
...
_xbegin();
000000013F8A529B or eax,0FFFFFFFFh
000000013F8A529E db c7h
000000013F8A529F clc
000000013F8A52A0 add byte ptr [rax],al
000000013F8A52A2 add byte ptr [rax],al
000000013F8A52A4 mov dword ptr [rbp+40h],eax
_xend();
000000013F8A52A7 db 0fh
...

Citazione:

Sergey Kostrov ha scritto:

1. '...to support TSX accordingly to its release information...' Where did you read it? I couldn't find it and what about a link, a quote or more details?

http://software.intel.com/en-us/intel-parallel-studio-xe

Citazione:

Sergey Kostrov ha scritto:

2. Why did you put codes in _TEXT SEGMENT?

What is wrong with it?

>>...What is wrong with it?

There is nothing wrong with the statement and it also could look like:
...
_TEXT segment dword public 'CODE'
...

>>>>1. '...to support TSX accordingly to its release information...' Where did you read it? I couldn't find it and what
>>>>about a link, a quote or more details?
>>
>>http://software.intel.com/en-us/intel-parallel-studio-xe

I checked all three Pdf documents with Release Notes for Windows, that is Initial Release, Update 1 and Update 2, and I have not found any references to TSX or xbegin.

>>>>1. '...to support TSX accordingly to its release information...' Where did you read it? I couldn't find it and what
>>>>about a link, a quote or more details?
>>
>>software.intel.com/en-us/intel-parallel-studio-xe

I checked all three Pdf documents with Release Notes for Windows, that is Initial Release, Update 1 and Update 2, and I have not found any references to TSX or xbegin.

Citazione:

Sergey Kostrov ha scritto:

I checked all three Pdf documents with Release Notes for Windows, that is Initial Release, Update 1 and Update 2, and I have not found any references to TSX or xbegin.

New support includes Intel® Xeon Phi™ coprocessors, Intel® AVX2, TSX and FMA3.

Ritratto di Brandon Hewitt (Intel)

Looks like this was a miss in the release notes for both 12.1 and 13.x. I'll make sure this gets corrected in future 13.1 updates, but it is supported both in 13.0 and the latest 12.1 (2011 update 10, which is 12.1.4 had it).  The 13.0 user's guide has details at http://software.intel.com/sites/products/documentation/doclib/stdxe/2013.... The high-level summary is that Windows supports both Hardware Lock Elision and Restricted Transactional Memory while Linux only supports RTM.

Brandon Hewitt Technical Consulting Engineer Tools Knowledge Base: "http://software.intel.com/en-us/articles/tools" Software Product Support info: "http://www.intel.com/software/support"

Brandon,

Take a look at Parallel Studio XE 2013 for Windows Release Notes ( Initial, Update 1 and Update 2 ) and there are strange links on a page 2:

...
1.3 System Requirements
For an explanation of architecture names, see intel.ly/mXIljK
...

and on a page 5:

...
2.2.1 Using a License Server
If you have purchased a “floating” license, see intel.ly/oPEdEe for information
...

Also, a topic 3 Known Issues is too generic and more information, including a web-link to a list of known and fixed bugs / issues, is needed.

If I enter

intel.ly/mXIljK

in IE it redirects to

software.intel.com/en-us/articles/intel-architecture-platform-terminology

Why wouldn't use the 2nd web-link instead of the 1st one?

This is a short follow up.

Brandon,

Steve Lionel (Intel) is aware about web-links like intel.ly/mXIljK and please contact him for more information ( if you need ). Thanks.

Accedere per lasciare un commento.