14. 5. 20.

SSE사용하기

SSE Intrinsic(인트린직?,인트린식?)
찾아본 사이트를 정리한다



# 레퍼런스 사이트

# 슬라이드

실 사용 예가 잘나와 있다.






# 예제

GCC에서 SSE? 어떻게 씀?

SSE에서 벡터곱, 행렬곱 어떻게 함?

SIMD 매뉴얼 같은 사이트의 예제

SSE 예제 2

SSE로 double사용 예제

__m128d 에서 double로 어떻게 변환하나

# 오류

리눅스 세그멘테이션 폴트시 에러 이전까지의 출력도 안나와서


GDB를 써야만 어디서 죽은지 알아서, r b c만 있어도 되겠던데


segmentation fault때문에 미칠것 같아서 ( 배열가리키는 포인터 문제라고 지적, 도움안됐다. )


역시 세그 폴트문제, 도움 안됐다. ( 세그폴트는 gdb gogo )
함수 파라미터 변수명하고, 함수 내 지역변수 이름이 겹치잖아요

# 기본 부족

printf 소수점 자리수 제한, 포맷 몰라서 (전체길이.소수점자리수f)
간결 printf 예제

# 궁금증

ASSERT() 라는 건 도대체 뭐지


# 알게된 점


128비트 짜리 레지스터에서 double등으로 변환하는 캐스팅이
원래 C언어처럼 되지 않아서 어려웠다.

load, store를 많이 쓰게 했더니 SSE를 썼는데도 느려졌다.

SSE명령중 곱한다음 더하는 것 까지 하는 명령어가 있다고 들은 것 같은데

찾지를 못했다.

슬라이드 중 하나에서 inline 함수로 쉽게 사용하게 만드는 코드가 있었던 것 같은데

만약 다음에 쓸일이 있으면, 그걸 써야겠다.

댓글 없음:

댓글 쓰기