'잡동사니'에 해당되는 글 13031건
- 2023.08.09 다이조아 택베도착
- 2023.08.09 arm vsub operator
- 2023.08.08 .bashrc 설정 history
- 2023.08.08 gcc cortex-a9 double형 neon 연산 가속 3
- 2023.08.07 ARM NEON SLP
- 2023.08.06 습하지 않은 더위
- 2023.08.05 libreoffice calc 중복제거
- 2023.08.04 libreoffice OpenCL 적용하기
- 2023.08.03 웹 브라우저 10080 포트 접근 차단 이유
- 2023.08.02 javascript 배열을파일로 저장하기
저번에 작성한 프로그램에서 VFP 를 통한 연산가속을 활성화 해봤는데 혹시나 해서, 어떤 명령어를 이용했나 역으로 찾아보는 중
111a0: f35668e8 vsub.i16 q11, q11, q12 1120c: f35318a1 vsub.i16 d17, d19, d17 1172c: f2600de8 vsub.f32 q8, q8, q12 11730: f2644de8 vsub.f32 q10, q10, q12 11784: ee377a46 vsub.f32 s14, s14, s12 117a8: ee755ac6 vsub.f32 s11, s11, s12 117c0: ee744ac6 vsub.f32 s9, s9, s12 117d8: ee355a46 vsub.f32 s10, s10, s12 117f0: ee755ac6 vsub.f32 s11, s11, s12 1180c: ee744ac6 vsub.f32 s9, s9, s12 11818: ee355a46 vsub.f32 s10, s10, s12 11824: ee356ac6 vsub.f32 s12, s11, s12 11844: f2600de8 vsub.f32 q8, q8, q12 11848: f2644de8 vsub.f32 q10, q10, q12 118a8: ee344a67 vsub.f32 s8, s8, s15 118d4: ee744ae7 vsub.f32 s9, s9, s15 118ec: ee355a67 vsub.f32 s10, s10, s15 11908: ee755ae7 vsub.f32 s11, s11, s15 11918: ee344a67 vsub.f32 s8, s8, s15 11924: ee744ae7 vsub.f32 s9, s9, s15 11930: ee355a67 vsub.f32 s10, s10, s15 1193c: ee757ae7 vsub.f32 s15, s11, s15 |
역어셈블 해보니 위와 같이 vsub.i16과 같은 neon 으로도 될 것 같은 녀석은 패스하면 vsub.f32 밖에 없다.
vsub.f32가 neon 껀지 vfp껀지 궁금해서 찾아보는 중
VSUB (floating-point) Floating-point subtract. This instruction can be scalar, vector, or mixed, but VFP vector mode and mixed mode are deprecated. |
[링크 : https://developer.arm.com/documentation/dui0489/i/neon-and-vfp-programming/vsub--floating-point-]
Instruction Section Instruction set V{Q}SUB V{Q}SUB, VSUBL and VSUBW NEON VSUB VSUB VFP |
cortex a9의 NEON MPE는 Advanced SIMD와 VFP 확장을 구현하였지만
IEEE754 연산중 아래의 연산을 하드웨어적으로 제공하지 않는다 인데
round float-point number to nearest integer-valued in floating point number 때문에
gcc 에서 --fast-math 를 켜줘야 VFP 명령이 활성화 되는걸까?
IEEE754 standard compliance The IEEE754 standard provides a number of implementation choices. The ARM Architecture Reference Manual describes the choices that apply to the Advanced SIMD and VFPv3 architectures. The Cortex-A9 NEON MPE implements the ARMv7 Advanced SIMD and VFP extensions. It does not provide hardware support for the following IEEE754 operations: remainder round floating-point number to nearest integer-valued in floating-point number binary-to-decimal conversion decimal-to-binary conversion direct comparison of single-precision and double-precision values any extended-precision operations. |
[링크 : https://developer.arm.com/documentation/ddi0409/e/programmers-model/ieee754-standard-compliance]
+
다시 옵션에 따른 비교를 해보니
어찌 된게 ffast-math 한게 디스어셈블한 부분이 더 길다.. 그런데 왜 빠르지?
for (int i = 0; i < READ_SIZE; i += 2) 11710: f3f48c46 vdup.32 q12, d6[0] float diff = data[i] - avg_0; 11714: f46c434d vld2.16 {d20-d23}, [ip]! 11718: f2d00a34 vmovl.s16 q8, d20 1171c: e151000c cmp r1, ip 11720: f2d04a35 vmovl.s16 q10, d21 11724: f3fb0660 vcvt.f32.s32 q8, q8 11728: f3fb4664 vcvt.f32.s32 q10, q10 1172c: f2600de8 vsub.f32 q8, q8, q12 11730: f2644de8 vsub.f32 q10, q10, q12 std_0 += diff * diff; 11734: f3400df0 vmul.f32 q8, q8, q8 11738: f2440df4 vmla.f32 q8, q10, q10 1173c: f2422de0 vadd.f32 q9, q9, q8 |
for (int i = 0; i < READ_SIZE; i += 2) 1177c: e15e000c cmp lr, ip float diff = data[i] - avg_0; 11780: ee072a90 vmov s15, r2 11784: eef87ae7 vcvt.f32.s32 s15, s15 11788: ee777ac6 vsub.f32 s15, s15, s12 std_0 += diff * diff; 1178c: ee077aa7 vmla.f32 s14, s15, s15 |
흐으으으으음.. 어셈은 어려워 -_ㅠ
Instruction Section Instruction set VMLA VMUL, VMLA, VMLS, VNMUL, VNMLA, and VNMLS VFP VMLA{L} VMUL{L}, VMLA{L}, and VMLS{L} (by scalar) NEON |
'embeded > ARM' 카테고리의 다른 글
cortex-a53 (0) | 2023.08.31 |
---|---|
aarch64 vector register (0) | 2023.08.23 |
ARM NEON SLP (0) | 2023.08.07 |
cortex a9 ptm (0) | 2023.07.21 |
openOCD와 jtag (0) | 2023.07.06 |
귀찮으니 정리해서 하나 저장해 놔야지 -_-
export HISTTIMEFORMAT="%y/%m/%d %T " export PROMPT_COMMAND='history -a' export PROMPT_COMMAND='echo -e "$(tty)\t$(history 1)" >> ~/bash-history-$(date "+%Y-%m-%d").log' |
'Linux' 카테고리의 다른 글
dhcpd IP 할당 규칙 (0) | 2023.09.01 |
---|---|
시스템 audit 로그 (0) | 2023.08.30 |
lvmcache bcache (0) | 2023.07.27 |
sysfs ethernet link status (0) | 2023.05.17 |
리눅스 커맨드 라인에서 몇줄씩 건너뛰고 출력하기 (0) | 2023.03.30 |
문득 cpu 사양 다시 볼까? 싶어서 보니
어? NEON이 아니라 NEON MPE?
NEON™ media-processing engine Single and double precision Vector Floating Point Unit (VFPU) |
[링크 : https://docs.xilinx.com/v/u/en-US/ds190-Zynq-7000-Overview]
그래서 cortex-A9 NEON MPE 명령을 뒤져보는데
VADD나 VSUB VMUL VDIV에 대해서 찾아보니 NEON으로는 float까지만 되도, double은 VFP를 통해서 가능할 것 같은데
D Double precision floating-point values F Single precision floating-point values H Half precision floating-point values I Integer values P Polynomials with single-bit coefficients X Operation is independent of data representation. Name Advanced SIMD VFP Description VADD I, F F, D Add VDIV - F, D Divide VMUL I, F, P F, D Multiply VSUB I, F F, D Subtract |
타입을 바꾸어 봐도 안되서 골머리를 싸매다가(float는 된다매!!! double은 vfp로 된다매!!!)
main.c:187:2: missed: couldn't vectorize loop main.c:177:6: missed: not vectorized: unsupported data-type double main.c:187:2: missed: couldn't vectorize loop main.c:177:6: missed: not vectorized: unsupported data-type float |
금단의 플래그를 설정하니 잘 된다. -_-
main.c:194:2: optimized: loop vectorized using 16 byte vectors main.c:188:2: optimized: loop vectorized using 16 byte vectors |
IEEE를 무시하고 안전하지 않은 연산도 적용되고 하다보니 영 쓰기가 불안한데...
In addition GCC offers the -ffast-math flag which is a shortcut for several options, presenting the least conforming but fastest math mode. It enables -fno-trapping-math, -funsafe-math-optimizations, -ffinite-math-only, -fno-errno-math, -fno-signaling-nans, -fno-rounding-math, -fcx-limited-range and -fno-signed-zeros. Each of these flags violates IEEE in a different way. -ffast-math also may disable some features of the hardware IEEE implementation such as the support for denormals or flush-to-zero behavior. An example for such a case is x86_64 with it's use of SSE and SSE2 units for floating point math. |
[링크 : https://gcc.gnu.org/wiki/FloatingPointMath]
아무튼 어제 어디서 보다 찾았던 associative 옵션을 못찾아서 헤매다가 다시 생각나서 보는데
associative하지 않다.. 이게 무슨 의미지?
Goldberg 논문에 나온 것 처럼 floating-point의 계산은 associative하지 않다. 그러므로 ffast-math 연산 방식에서는 실제 값에 오류를 포함할 수 밖에 없다. 이러한 점 때문에 ffast-math 방식은 IEEE에서 정의한 방식을 따르지 못한다. 위와 같은 특징 때문에, 정확한 값을 계산해야하는 것이라면 ffast-math를 사용하면 안된다. 하지만 대충 어림잡아서 맞는 값을 원하는 것이라면? |
[링크 : https://www.cv-learn.com/20210107-gcc-ffast-math/]
float 형의 오차로 인해서 계산때 마다 동일 결과가 나오지 않는다는 의미군..
결합의((a × b) × c = a × (b × c)의 예에서처럼 계산식이 부분의 순서와 상관없이 동일한 결과가 나오는) |
[링크 : https://en.dict.naver.com/#/entry/enko/43a6bbaaacf546199c5d4c57b6b88ebb]
그래서 한번 -ffast-math 대신 적용해보려는데 다른 상위 옵션에 의해서 무시 당했다고 나온다.
누가 상위 옵션이려나?
-o -W -Wall -fopt-info-vec -march=armv7-a -mfpu=neon -O3 -fassociative-math cc1: warning: ‘-fassociative-math’ disabled; other options take precedence |
-ffast-math 보단 순한 맛이긴 한데 적용이 안되면 의미 없지 머..
-fassociative-math Allow re-association of operands in series of floating-point operations. This violates the ISO C and C++ language standard by possibly changing computation result. NOTE: re-ordering may change the sign of zero as well as ignore NaNs and inhibit or create underflow or overflow (and thus cannot be used on code that relies on rounding behavior like (x + 2**52) - 2**52. May also reorder floating-point comparisons and thus may not be used when ordered comparisons are required. This option requires that both -fno-signed-zeros and -fno-trapping-math be in effect. Moreover, it doesn’t make much sense with -frounding-math. For Fortran the option is automatically enabled when both -fno-signed-zeros and -fno-trapping-math are in effect. The default is -fno-associative-math. |
[링크 : https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html]
'프로그램 사용 > gcc' 카테고리의 다른 글
gcc tree vectorize (0) | 2023.01.26 |
---|---|
gcc fstack-protector-strong (0) | 2022.12.06 |
gcc vectorization 실패 (0) | 2022.06.02 |
gcc / 문자열 선언 (0) | 2022.03.17 |
static link (0) | 2022.02.07 |
SLP가 먼가 해서 보는데 gcc/gnu 문서 내에서는 없어서
word 보다 더 큰 크기의 데이터들에 대해서(super word level) 병렬화(parallelism) 한다는 의미인가?
Superword-Level Parallelism (SLP) vectorizer |
[링크 : https://rcor.me/papers/cgo19snslp.pdf]
[링크 : https://llvm.org/docs/Vectorizers.html#slp-vectorizer]
Example 20: Basic block SLP with multiple types, loads with different offsets, misaligned load, and not-affine accesses:
void foo (int * __restrict__ dst, short * __restrict__ src,
int h, int stride, short A, short B)
{
int i;
for (i = 0; i < h; i++)
{
dst[0] += A*src[0] + B*src[1];
dst[1] += A*src[1] + B*src[2];
dst[2] += A*src[2] + B*src[3];
dst[3] += A*src[3] + B*src[4];
dst[4] += A*src[4] + B*src[5];
dst[5] += A*src[5] + B*src[6];
dst[6] += A*src[6] + B*src[7];
dst[7] += A*src[7] + B*src[8];
dst += stride;
src += stride;
}
}
[링크 : https://gcc.gnu.org/projects/tree-ssa/vectorization.html#slp]
'embeded > ARM' 카테고리의 다른 글
aarch64 vector register (0) | 2023.08.23 |
---|---|
arm vsub operator (0) | 2023.08.09 |
cortex a9 ptm (0) | 2023.07.21 |
openOCD와 jtag (0) | 2023.07.06 |
cmsis (Common Microcontroller Software Interface Standard) (0) | 2023.02.27 |
엑셀은 간단했는데 ㅠㅠ
중복 제거할 영역 선택 상단 메뉴에서 'Data > More Filters > Standard Filter...' 선택 필드 이름을 '-none-'으로 변경, 하단 'Options > No duplications' 체크 중복 제거 확인 |
'프로그램 사용 > openoffice' 카테고리의 다른 글
libreoffice에서 italic으로 자동 변환 막기 (0) | 2024.02.13 |
---|---|
libreoffice hwp 확장 (0) | 2023.10.11 |
libreoffice OpenCL 적용하기 (0) | 2023.08.04 |
리브레 오피스 Calc 중복제거 (0) | 2020.11.05 |
리브레 오피스 내보내기 - PDF (0) | 2020.09.22 |
libreoffice 에서 그래프 그리는데 버벅대서 찾아보다 보니 openCL 로 가속이 가능하다고 한다.
[링크 : https://hamonikr.org/board_bFBk25/54522]
근데 정작 그래프 그리는데에는 도움이 안된다.
그냥 셀들 계산이 많을때는 도움이 될 듯.
-----
설정 뒤져보니 OpenCL 선택사항이라는게 있는데
OpenCL 사용 가능한 상황이라면, 아래에서 "OpenCL 사용 허용" 에 체크하고 적용 혹은 확인 누르면
libreoffice 다시 시작 하냐고 물어보는데 다시시작하고
설정을 보면 OpenCL을 사용할 수 있습니다로 바뀐다.
물론 그전에 OpenCL 이 사용가능한지 확인하고 설치해야 한다.
clinfo 실행해서 Number of platforms 가 0이 뜨면 OpenCL 사용 불가능한 상태
$ sudo apt install clinfo $ clinfo Number of platforms 0 |
[링크 : https://ask.libreoffice.org/t/unable-to-activate-opencl/45714/3]
intel 10세대 노트북에 내장형 밖에 없어서 intel opencl을 설치해준다.
$ sudo add-apt-repository ppa:intel-opencl/intel-opencl $ sudo apt-get update $ sudo apt install intel-opencl-icd |
[링크 : https://marcokhan.tistory.com/250]
clinfo 실행하면 Number of platforms에 1이 딱!
$ clinfo Number of platforms 1 Platform Name Intel(R) OpenCL HD Graphics Platform Vendor Intel(R) Corporation Platform Version OpenCL 3.0 Platform Profile FULL_PROFILE Platform Extensions cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_command_queue_families cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long cl_khr_il_program cl_intel_mem_force_host_memory cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_intel_device_attribute_query cl_khr_suggested_local_work_size cl_khr_fp64 cl_khr_subgroups cl_intel_spirv_device_side_avc_motion_estimation cl_intel_spirv_media_block_io cl_intel_spirv_subgroups cl_khr_spirv_no_integer_wrap_decoration cl_intel_unified_shared_memory cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_intel_planar_yuv cl_intel_packed_yuv cl_intel_motion_estimation cl_intel_device_side_avc_motion_estimation cl_intel_advanced_motion_estimation cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_3d_image_writes cl_intel_media_block_io cl_intel_va_api_media_sharing cl_intel_sharing_format_query cl_khr_pci_bus_info Platform Extensions with Version cl_khr_byte_addressable_store 0x400000 (1.0.0) cl_khr_fp16 0x400000 (1.0.0) cl_khr_global_int32_base_atomics 0x400000 (1.0.0) cl_khr_global_int32_extended_atomics 0x400000 (1.0.0) cl_khr_icd 0x400000 (1.0.0) cl_khr_local_int32_base_atomics 0x400000 (1.0.0) cl_khr_local_int32_extended_atomics 0x400000 (1.0.0) cl_intel_command_queue_families 0x400000 (1.0.0) cl_intel_subgroups 0x400000 (1.0.0) cl_intel_required_subgroup_size 0x400000 (1.0.0) cl_intel_subgroups_short 0x400000 (1.0.0) cl_khr_spir 0x400000 (1.0.0) cl_intel_accelerator 0x400000 (1.0.0) cl_intel_driver_diagnostics 0x400000 (1.0.0) cl_khr_priority_hints 0x400000 (1.0.0) cl_khr_throttle_hints 0x400000 (1.0.0) cl_khr_create_command_queue 0x400000 (1.0.0) cl_intel_subgroups_char 0x400000 (1.0.0) cl_intel_subgroups_long 0x400000 (1.0.0) cl_khr_il_program 0x400000 (1.0.0) cl_intel_mem_force_host_memory 0x400000 (1.0.0) cl_khr_subgroup_extended_types 0x400000 (1.0.0) cl_khr_subgroup_non_uniform_vote 0x400000 (1.0.0) cl_khr_subgroup_ballot 0x400000 (1.0.0) cl_khr_subgroup_non_uniform_arithmetic 0x400000 (1.0.0) cl_khr_subgroup_shuffle 0x400000 (1.0.0) cl_khr_subgroup_shuffle_relative 0x400000 (1.0.0) cl_khr_subgroup_clustered_reduce 0x400000 (1.0.0) cl_intel_device_attribute_query 0x400000 (1.0.0) cl_khr_suggested_local_work_size 0x400000 (1.0.0) cl_khr_fp64 0x400000 (1.0.0) cl_khr_subgroups 0x400000 (1.0.0) cl_intel_spirv_device_side_avc_motion_estimation 0x400000 (1.0.0) cl_intel_spirv_media_block_io 0x400000 (1.0.0) cl_intel_spirv_subgroups 0x400000 (1.0.0) cl_khr_spirv_no_integer_wrap_decoration 0x400000 (1.0.0) cl_intel_unified_shared_memory 0x400000 (1.0.0) cl_khr_mipmap_image 0x400000 (1.0.0) cl_khr_mipmap_image_writes 0x400000 (1.0.0) cl_intel_planar_yuv 0x400000 (1.0.0) cl_intel_packed_yuv 0x400000 (1.0.0) cl_intel_motion_estimation 0x400000 (1.0.0) cl_intel_device_side_avc_motion_estimation 0x400000 (1.0.0) cl_intel_advanced_motion_estimation 0x400000 (1.0.0) cl_khr_int64_base_atomics 0x400000 (1.0.0) cl_khr_int64_extended_atomics 0x400000 (1.0.0) cl_khr_image2d_from_buffer 0x400000 (1.0.0) cl_khr_depth_images 0x400000 (1.0.0) cl_khr_3d_image_writes 0x400000 (1.0.0) cl_intel_media_block_io 0x400000 (1.0.0) cl_intel_va_api_media_sharing 0x400000 (1.0.0) cl_intel_sharing_format_query 0x400000 (1.0.0) cl_khr_pci_bus_info 0x400000 (1.0.0) Platform Numeric Version 0xc00000 (3.0.0) Platform Extensions function suffix INTEL Platform Host timer resolution 1ns Platform Name Intel(R) OpenCL HD Graphics Number of devices 1 Device Name Intel(R) UHD Graphics [0x9b41] Device Vendor Intel(R) Corporation Device Vendor ID 0x8086 Device Version OpenCL 3.0 NEO Device Numeric Version 0xc00000 (3.0.0) Driver Version 1.0.0 Device OpenCL C Version OpenCL C 1.2 Device OpenCL C all versions OpenCL C 0x400000 (1.0.0) OpenCL C 0x401000 (1.1.0) OpenCL C 0x402000 (1.2.0) OpenCL C 0xc00000 (3.0.0) Device OpenCL C features __opencl_c_int64 0xc00000 (3.0.0) __opencl_c_3d_image_writes 0xc00000 (3.0.0) __opencl_c_images 0xc00000 (3.0.0) __opencl_c_read_write_images 0xc00000 (3.0.0) __opencl_c_atomic_order_acq_rel 0xc00000 (3.0.0) __opencl_c_atomic_order_seq_cst 0xc00000 (3.0.0) __opencl_c_atomic_scope_all_devices 0xc00000 (3.0.0) __opencl_c_atomic_scope_device 0xc00000 (3.0.0) __opencl_c_generic_address_space 0xc00000 (3.0.0) __opencl_c_program_scope_global_variables 0xc00000 (3.0.0) __opencl_c_work_group_collective_functions 0xc00000 (3.0.0) __opencl_c_subgroups 0xc00000 (3.0.0) __opencl_c_pipes 0xc00000 (3.0.0) __opencl_c_fp64 0xc00000 (3.0.0) Latest comfornace test passed v2021-06-16-00 Device Type GPU Device Profile FULL_PROFILE Device Available Yes Compiler Available Yes Linker Available Yes Max compute units 24 Max clock frequency 1150MHz Device Partition (core) Max number of sub-devices 0 Supported partition types None Supported affinity domains (n/a) Max work item dimensions 3 Max work item sizes 256x256x256 Max work group size 256 Preferred work group size multiple (device) 32 Preferred work group size multiple (kernel) 32 Max sub-groups per work group 32 Sub-group sizes (Intel) 8, 16, 32 Preferred / native vector sizes char 16 / 16 short 8 / 8 int 4 / 4 long 1 / 1 half 8 / 8 (cl_khr_fp16) float 1 / 1 double 1 / 1 (cl_khr_fp64) Half-precision Floating-point support (cl_khr_fp16) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Single-precision Floating-point support (core) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Correctly-rounded divide and sqrt operations Yes Double-precision Floating-point support (cl_khr_fp64) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Address bits 64, Little-Endian Global memory size 13228806144 (12.32GiB) Error Correction support No Max memory allocation 4294959104 (4GiB) Unified memory for Host and Device Yes Shared Virtual Memory (SVM) capabilities (core) Coarse-grained buffer sharing Yes Fine-grained buffer sharing No Fine-grained system sharing No Atomics No Minimum alignment for any data type 128 bytes Alignment of base address 1024 bits (128 bytes) Preferred alignment for atomics SVM 64 bytes Global 64 bytes Local 64 bytes Atomic memory capabilities relaxed, acquire/release, sequentially-consistent, work-group scope, device scope, all-devices scope Atomic fence capabilities relaxed, acquire/release, sequentially-consistent, work-item scope, work-group scope, device scope, all-devices scope Max size for global variable 65536 (64KiB) Preferred total size of global vars 4294959104 (4GiB) Global Memory cache type Read/Write Global Memory cache size 524288 (512KiB) Global Memory cache line size 64 bytes Image support Yes Max number of samplers per kernel 16 Max size for 1D images from buffer 268434944 pixels Max 1D or 2D image array size 2048 images Base address alignment for 2D image buffers 4 bytes Pitch alignment for 2D image buffers 4 pixels Max 2D image size 16384x16384 pixels Max planar YUV image size 16384x16352 pixels Max 3D image size 16384x16384x2048 pixels Max number of read image args 128 Max number of write image args 128 Max number of read/write image args 128 Pipe support Yes Max number of pipe args 16 Max active pipe reservations 1 Max pipe packet size 1024 Local memory type Local Local memory size 65536 (64KiB) Max number of constant args 8 Max constant buffer size 4294959104 (4GiB) Generic address space support Yes Max size of kernel argument 2048 (2KiB) Queue properties (on host) Out-of-order execution Yes Profiling Yes Device enqueue capabilities (n/a) Queue properties (on device) Out-of-order execution No Profiling No Preferred size 0 Max size 0 Max queues on device 0 Max events on device 0 Prefer user sync for interop Yes Profiling timer resolution 83ns Execution capabilities Run OpenCL kernels Yes Run native kernels No Non-uniform work-groups Yes Work-group collective functions Yes Sub-group independent forward progress Yes IL version SPIR-V_1.2 ILs with version SPIR-V 0x402000 (1.2.0) SPIR versions 1.2 printf() buffer size 4194304 (4MiB) Built-in kernels block_motion_estimate_intel;block_advanced_motion_estimate_check_intel;block_advanced_motion_estimate_bidirectional_check_intel; Built-in kernels with version block_motion_estimate_intel 0x400000 (1.0.0) block_advanced_motion_estimate_check_intel 0x400000 (1.0.0) block_advanced_motion_estimate_bidirectional_check_intel 0x400000 (1.0.0) Motion Estimation accelerator version (Intel) 2 Device-side AVC Motion Estimation version 1 Supports texture sampler use Yes Supports preemption No Device Extensions cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_command_queue_families cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long cl_khr_il_program cl_intel_mem_force_host_memory cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_intel_device_attribute_query cl_khr_suggested_local_work_size cl_khr_fp64 cl_khr_subgroups cl_intel_spirv_device_side_avc_motion_estimation cl_intel_spirv_media_block_io cl_intel_spirv_subgroups cl_khr_spirv_no_integer_wrap_decoration cl_intel_unified_shared_memory cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_intel_planar_yuv cl_intel_packed_yuv cl_intel_motion_estimation cl_intel_device_side_avc_motion_estimation cl_intel_advanced_motion_estimation cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_3d_image_writes cl_intel_media_block_io cl_intel_va_api_media_sharing cl_intel_sharing_format_query cl_khr_pci_bus_info Device Extensions with Version cl_khr_byte_addressable_store 0x400000 (1.0.0) cl_khr_fp16 0x400000 (1.0.0) cl_khr_global_int32_base_atomics 0x400000 (1.0.0) cl_khr_global_int32_extended_atomics 0x400000 (1.0.0) cl_khr_icd 0x400000 (1.0.0) cl_khr_local_int32_base_atomics 0x400000 (1.0.0) cl_khr_local_int32_extended_atomics 0x400000 (1.0.0) cl_intel_command_queue_families 0x400000 (1.0.0) cl_intel_subgroups 0x400000 (1.0.0) cl_intel_required_subgroup_size 0x400000 (1.0.0) cl_intel_subgroups_short 0x400000 (1.0.0) cl_khr_spir 0x400000 (1.0.0) cl_intel_accelerator 0x400000 (1.0.0) cl_intel_driver_diagnostics 0x400000 (1.0.0) cl_khr_priority_hints 0x400000 (1.0.0) cl_khr_throttle_hints 0x400000 (1.0.0) cl_khr_create_command_queue 0x400000 (1.0.0) cl_intel_subgroups_char 0x400000 (1.0.0) cl_intel_subgroups_long 0x400000 (1.0.0) cl_khr_il_program 0x400000 (1.0.0) cl_intel_mem_force_host_memory 0x400000 (1.0.0) cl_khr_subgroup_extended_types 0x400000 (1.0.0) cl_khr_subgroup_non_uniform_vote 0x400000 (1.0.0) cl_khr_subgroup_ballot 0x400000 (1.0.0) cl_khr_subgroup_non_uniform_arithmetic 0x400000 (1.0.0) cl_khr_subgroup_shuffle 0x400000 (1.0.0) cl_khr_subgroup_shuffle_relative 0x400000 (1.0.0) cl_khr_subgroup_clustered_reduce 0x400000 (1.0.0) cl_intel_device_attribute_query 0x400000 (1.0.0) cl_khr_suggested_local_work_size 0x400000 (1.0.0) cl_khr_fp64 0x400000 (1.0.0) cl_khr_subgroups 0x400000 (1.0.0) cl_intel_spirv_device_side_avc_motion_estimation 0x400000 (1.0.0) cl_intel_spirv_media_block_io 0x400000 (1.0.0) cl_intel_spirv_subgroups 0x400000 (1.0.0) cl_khr_spirv_no_integer_wrap_decoration 0x400000 (1.0.0) cl_intel_unified_shared_memory 0x400000 (1.0.0) cl_khr_mipmap_image 0x400000 (1.0.0) cl_khr_mipmap_image_writes 0x400000 (1.0.0) cl_intel_planar_yuv 0x400000 (1.0.0) cl_intel_packed_yuv 0x400000 (1.0.0) cl_intel_motion_estimation 0x400000 (1.0.0) cl_intel_device_side_avc_motion_estimation 0x400000 (1.0.0) cl_intel_advanced_motion_estimation 0x400000 (1.0.0) cl_khr_int64_base_atomics 0x400000 (1.0.0) cl_khr_int64_extended_atomics 0x400000 (1.0.0) cl_khr_image2d_from_buffer 0x400000 (1.0.0) cl_khr_depth_images 0x400000 (1.0.0) cl_khr_3d_image_writes 0x400000 (1.0.0) cl_intel_media_block_io 0x400000 (1.0.0) cl_intel_va_api_media_sharing 0x400000 (1.0.0) cl_intel_sharing_format_query 0x400000 (1.0.0) cl_khr_pci_bus_info 0x400000 (1.0.0) NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) Intel(R) OpenCL HD Graphics clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Success [INTEL] clCreateContext(NULL, ...) [default] Success [INTEL] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1) Platform Name Intel(R) OpenCL HD Graphics Device Name Intel(R) UHD Graphics [0x9b41] clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1) Platform Name Intel(R) OpenCL HD Graphics Device Name Intel(R) UHD Graphics [0x9b41] clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1) Platform Name Intel(R) OpenCL HD Graphics Device Name Intel(R) UHD Graphics [0x9b41] ICD loader properties ICD loader Name OpenCL ICD Loader ICD loader Vendor OCL Icd free software ICD loader Version 2.2.14 ICD loader Profile OpenCL 3.0 |
'프로그램 사용 > openoffice' 카테고리의 다른 글
libreoffice hwp 확장 (0) | 2023.10.11 |
---|---|
libreoffice calc 중복제거 (0) | 2023.08.05 |
리브레 오피스 Calc 중복제거 (0) | 2020.11.05 |
리브레 오피스 내보내기 - PDF (0) | 2020.09.22 |
libreoffice calc , 엑셀 F4 처럼 쓰기 (0) | 2019.12.21 |
크롬과 파이어폭스에서 둘다 막혀서 에러를 보니
ERR_UNSAFE_PORT
어떤 포트인가 해서 찾아보니 NAT slipstreaming 이라는 공격 기법의 주요 포트여서 막힌 듯.
포트 10080 NAT Slipstreaming 공격을 방지합니다 |
[링크 : https://itigic.com/ko/chrome-blocks-tcp-port-10080-to-prevent-attacks/]
7000 번 이하의 well known 포트는 거진 막아버린건가?
[링크 : https://blog.naver.com/celine2011/220973349118]
'Programming > web 관련' 카테고리의 다른 글
브라우저 언어 탐지 (0) | 2024.01.18 |
---|---|
javascript exif 정보 얻기 (0) | 2023.11.29 |
javascript 배열을파일로 저장하기 (0) | 2023.08.02 |
Canvas2D: Multiple readback operations using getImageData (0) | 2023.07.24 |
webGPU (0) | 2023.05.18 |
blob 으로 하면 저장은 되는데, 옵션을 주어서 파일 유형을 골라줘야 할 듯.
arr = [1,2,3,4,5,100] (6) [1, 2, 3, 4, 5, 100] var blob = new Blob(arr) window.open(URL.createObjectURL(blob)) |
url에 blob이 붙어서 신기하네
[링크 : https://blog.naver.com/nan17a/222058843806]
var aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; var oMyBlob = new Blob(aFileParts, {type : 'text/html'}); // the blob window.open(URL.createObjectURL(oMyBlob)); |
[링크 : https://stackoverflow.com/questions/13405129/create-and-save-a-file-with-javascript]
'Programming > web 관련' 카테고리의 다른 글
javascript exif 정보 얻기 (0) | 2023.11.29 |
---|---|
웹 브라우저 10080 포트 접근 차단 이유 (0) | 2023.08.03 |
Canvas2D: Multiple readback operations using getImageData (0) | 2023.07.24 |
webGPU (0) | 2023.05.18 |
chart.js log 스케일 (0) | 2023.03.31 |