개요
Windows 환경에서 SIMD 명령을 사용 하려면 현재 CPU 가 SIMD 명령을 지원하는지 확인 해야 한다. 실제 SIMD 지원하는 CPU 이지만 CHIP SET 및 드라이버가 잘못 설치 되어 있는 경우에는 오동작을 하기 때문에 현재 CPU 가 SSE 를 지원 하는지 확인 하는 코드가 필요하다.
칩셋 및 드라이버 설치 잘못 되어 있는 컴퓨터에 동작하면 무조건 CRASH 다. 정말 암 걸린다.
상태 체크 방안(1)
1 2 3 4 5 6 7 8 9 | #include <intrin.h> // header 추가 #define cpuid(info, x) __cpuidex(info, x, 0) int main() { int info[4]; cpuid(info, 4); return 0; } | cs |
간단 하게는 위 코드 처럼 CPU 의 정보를 얻는 방법이 있다.
상태 체크 방안(2)
https://github.com/Mysticial/FeatureDetector 이동 하면 현재 CPU 의 정보를 얻는 코드가 잘 정리 되어 있다.
코드는 아래처럼 간단 하다 소스가 정리가 잘되어 있어 그대로 사용 하도록 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | /* Main.cpp * * Author : Alexander J. Yee * Date Created : 04/17/2015 * Last Modified : 04/17/2015 * */ #include <iostream> using std::cout; using std::endl; #include "x86/cpu_x86.h" using namespace FeatureDetector; int main(){ cout << "CPU Vendor String: " << cpu_x86::get_vendor_string() << endl; cout << endl; cpu_x86::print_host(); #if _WIN32 system("pause"); #endif } | cs |
출력 결과
아래 출력 결과를 보게 되면 CPU 밴더, OS 환경 시스템, 지원 가능한 모든 명령 조회 가능 하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | CPU Vendor String: Genuine Intel CPU Vendor: AMD = No Intel = Yes OS Features: 64-bit = Yes OS AVX = Yes OS AVX512 = No Hardware Features: MMX = Yes x64 = Yes ABM = Yes RDRAND = Yes BMI1 = Yes BMI2 = Yes ADX = No MPX = No PREFETCHWT1 = No SIMD: 128-bit SSE = Yes SSE2 = Yes SSE3 = Yes SSSE3 = Yes SSE4a = No SSE4.1 = Yes SSE4.2 = Yes AES-NI = Yes SHA = No SIMD: 256-bit AVX = Yes XOP = No FMA3 = Yes FMA4 = No AVX2 = Yes SIMD: 512-bit AVX512-F = No AVX512-CD = No AVX512-PF = No AVX512-ER = No AVX512-VL = No AVX512-BW = No AVX512-DQ = No AVX512-IFMA = No AVX512-VBMI = No Summary: Safe to use AVX: Yes Safe to use AVX512: No | cs |
JPEG-TURBO #3 - 스마트 스케일러 사용 및 성능 측정 (0) | 2018.12.28 |
---|---|
JPEG-TURBO #1 - 설치 (0) | 2018.12.24 |
NEON 과 SSE 간에 변환 (0) | 2018.12.17 |
댓글 영역