글 목록 보기

Lyn
조회 수 5334 추천 수 0 댓글 0
Atachment
첨부 '3'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

예전 x86 시절에는 다양한 calling convention 이 있었습니다.

MS가 OS API 의 디폴트로 사용한 pascal 식 호출방식(__stdcall) 막상 언어로 파스칼을 쓰는 델파이가 파스칼식을 사용 하지 않고 사용하고 있던 fastcall, 그리고 c에서 사용하는 cdecl

 

이 각각의 호출 방식은 각각 장단점이 있었는데, pascal 식은 바이너리의 크기가 작아진다, fastcall 은 인자 전달에 레지스터를 사용 하므로 속도에 유리하다, cdecl 은 최적화 단계에서 스택 push ,pop 을 생략할 수 있으므로, 최적화에 유리하고 가변인지를 지원 할 수 있다는 장점이 있었습니다.

 

그러나 바야흐로 x64 시대, 컴파일러를 설계하는 사람들은 각각의 장점을 통합한 새로운 호출 방식을 만들게 되었습니다. 그 이후 calling convention 을 지정하는 모든 키워드는 x64 컴파일시에 무시되며, 그런거 신경 안써도 되는 평화로운 세월이 이어져 왔습니다.

 

그러나 시간이 흘러 CPU는 클럭경쟁의 시대가 막이 내리고, SMID 와 멀티코어의 시대로 넘어 왔는데... 당연히 CPU 제조사들은 새 SIMD 명령어를 추가 하기 시작 했고, 그에 맞춰 새 명령어용 레지스터가 추가 되었습니다. 그 시점에서 컴파일러 개발자들은 이렇게 생각 햇나 봅니다 "어? 레지스터가 놀고있네?" 라고. 그리하여 VS2013 이후부터는 __vectorcall 이라는 키워드가 추가되어, 더이상 x64 바이너리에서도 calling convention 을 무시 할 수 없게 되었습니다.

 

간단한 예제를 보겠습니다.

 

#include <cstdio>
#include <intrin.h>

__m256i func(double d1, double d2, double d3, double d4, __m256i f)
{
    printf("%f %f %f %f\n", d1, d2, d3, d4);

    printf("%lld %lld %lld %lld\n", 
        f.m256i_u64[0], f.m256i_u64[1], f.m256i_u64[2], f.m256i_u64[3]);

    return f;
}

int __cdecl main()
{
    __m256i f;

    for (int i = 0; i < 4; ++i)
    {
        f.m256i_u64[i] = i;
    }
    
    f = func(0.1, 0.2, 0.3, 0.4, f);

    return 0;
}

 

이코드를 빌드해서 실행 해 보면 다음과 같은 코드를 볼 수 있습니다.

vc1.PNG

 

 

그리고 함수의 프로토타입에 __vectorcall 을 추가하여

__m256i __vectorcall func(double d1, double d2, double d3, double d4, __m256i f)

와 같이 만든 후 다시 빌드 해 보겠습니다

 

 

 

vc2.PNG

 

차이가 보이시나요? 첫 줄에서 ymm4 라는 avx 레지스터가 추가적으로 함수 전달에 쓰이는 것을 볼 수 있습니다.
매번 __vectorcall 을 붙이기 싫다면 

vc3.PNG

 

옵션에서 조정 하거나, /Gv 플래그를 추가하여 사용 할 수도 있습니다.
단 /Gv 플래그를 켤 경우, main 은 항상 __cdecl 이어야 한다는 조건이 있으므로, 위 코드처럼 __cdecl 을 붙여주지 않으면 경고가 발생 할 것이니 조심하세요.

TAG •
?

2011.03.31 08:21

Mysql 툴

Lyn
조회 수 37405 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

2015년 7월 현재 상황이 많이 바뀌었다.

HeidiSQL 은 발전이 없고, Mysql Workbench 는 엄청 좋아졋다. 특히 DB가 클 경우 HeidiSQL 은 테이블 목록 불러오는데만도 세월을 느낄 수 있을 정도이다.

HeidiSQL 을 쓸 경우는 그저 MariaDB 10.x 를 사용할 때 뿐이다(MariaDB와 같이 배포되며, Workbench 는 MariaDB 10.x를 지원하지 않는다)

 

HeidiSQL

 

MysqlFront 이제 구버전이다

 

TAG •
?

Lyn
조회 수 28025 추천 수 0 댓글 0
Atachment
첨부 '2'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

멀티미디어 타이머를 시작하기 위해 timeSetEvent 를 호출하면



1.png

2.png


결과적으로 timeBeginPeriod 가 호출된다.

멀티미디어 타이머 해상도의 비밀은 timeBeginPeriod 이었던것!

?

Lyn
조회 수 35573 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

Lyn
조회 수 14403 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

SSMS에서 replication publish 삭제시 dbo 에 권한이 없다고 오류가 나는 경우가 있습니다.


이때 sp_removedbreplication 프로시저를 해당 db에서 강제로 날려주면 깔끔하게 제거 가능합니다.

?

Lyn
조회 수 20487 추천 수 0 댓글 1
Atachment
첨부 '1'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

111111.png

SQL Server 2014를 제외한 거의 모든 제품이 정식 으로 등록되었네요.
개인적으론 Hyper-V + WIndows 2012R2에 큰 기대중입니다. VMWare 보며 부러워 했던 기능들이 많이 추가되었네요.

TAG •
?

Lyn
조회 수 19162 추천 수 0 댓글 0
Atachment
첨부 '1'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

MS 애저 온라인 세미나가 있습니다

무료개발툴을 이용한 애저 개발, 애저에서의 빅데이터 이용을 주제로 진행된다고 합니다.

아래 링크에서 원하시는 세션을 등록 하실 수 있습니다

남정현 MVP 세션정보 및 등록 – http://bit.ly/OfCSMd
정홍주 MVP 세션정보 및 등록 – http://bit.ly/1ivjRmQ
마이크로소프트 MVP 커뮤니티 캠프 2014 안내 -http://bit.ly/MVPComCamp2014


01.jpg

?

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

관리자 권한을 가진 상태에서 MsiExec.exe /I{A0F05048-7653-4FCD-9F3A-C740E4052ACE}


를 실행하면 Rsfx Driver 언인스톨러를 띄울 수 있습니다. 이걸 먼저 언인스톨 한 후,  2012 Uninstall 을 하면 삭제 가능합니다.

TAG •
?

Lyn
조회 수 15088 추천 수 0 댓글 0
Atachment
첨부 '1'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

MS빠 인증 (...) 이라고 생각해도 될까요.

역시 개발툴은 MS가 최고죠..

1.png

?

Lyn
조회 수 50982 추천 수 0 댓글 3
Atachment
첨부 '4'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

네.. 제가 얼마전에 감격스럽게도 C++ MVP로 선정 되었는데요... 드디어 까 보았습니다.

2.jpg


페덱스로 배달이 왔습니다. 겉포장엔 MVP KIT 라고 씌여 있네요



3.png


열어보니 이런 박스가 나옵니다.

가운데에 있는 박스는 뭐라그러나 상패? 그런게 있고위에는 일종의 인증서가 들어 있습니다. C++이라는 글자와 함께 제 이름이 박혀있네요.
앞쪽에는 카드와 뱃지, 그리고 비밀유지서약 관련 팜플렛이 있습니다


4.png


카드에는 기간과 MVP ID, 이름, 분야가 씌여 있습니다. ID는 가렸습니다.그림판으로 지웠더니 다 보이네요 ;


1.jpg



상패에는 2013년 디스크를 끼울수 있게 되어 있습니다.  아마 나중에 또 된다면 그땐 디스크만 주지 않을까 싶네요.



이것 외에 제공되는 것 중엔 역시 Visual Studio Ultimate MSDN 라이센스가 제공되는것이 가장 크네요. MS의 거의 전제품을 자유롭게 테스트해볼 수 있습니다 : )

TAG •
?

Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
/ 14