Streaming Multiprocessor (SM) GPU에서 CPU의 코어에 대응하는 단위는 SM (Streaming Multiprocessor)이다. 이 SM이 계산하는 것을 수행하게 된다.GPU에는 여러 SM이 있다. 위 그림처럼 GPU의 SM도 CPU와 비슷하게 내부에 레지스터와 캐시를 가지고 있다. 다만, L2 캐시는 외부에 있는 것을 확인할 수 있다. (GPU마다 다를 수 있음)NVIDIA GPU에서 관련된 SM의 쌍들은 Texture Processing Cluster(TPC)라고 불리며, 여러 TPC들의 묶음은 Graphics Processing Cluster(GPC)라고 불리게 된다. 일반 CPU 보드처럼 저 초록색 네모가 이제 GPU의 SM에 대응하고, 저 빨간 색 줄들이 GPU D..
1. ARMv8-A에서 주소 변환 구조 (EL0/EL1)페이지 테이블 베이스 레지스터:TTBR0_EL1: 보통 유저 공간 (low VA) 용TTBR1_EL1: 보통 커널 공간 (high VA) 용TCR_EL1에 VA split이 있어서, VA 상위 비트에 따라 TTBR0 vs TTBR1 중 뭘 쓸지 결정.VA가 특정 주소 이하(유 주소 공간)이면 TTBR0_EL1가 가리키는 페이지 테이블 사용 VA가 특정 주소 이상(커널 주소 공간)이면 TTBR1_EL1가 가리키는 페이지 테이블 사용2. “프로세스 A 소속 주소”에 커널이 접근할 때 어떤 PTE를 보냐리눅스 스타일로 가정하면:프로세스 A가 실행 중일 때:커널은 A에 대해TTBR0_EL1 = A의 user-space 페이지 테이블TTBR1_EL1 = 공..
MEMORY에서막 aaa부분이 origin=~~이렇게 있으면aaa가 실제로 ram에 들어있는지 flash에 들어있는지 어떻게 아는가?걍 origin 주소를 보고 이게 실제로 내 보드 메모리 맵에서 어디에 해당되는지를 보면 된다.ㅇㅇ
MEMORY는 전체적인 메모리 틀을 잡아주는 애라고 생각하면 되고,SECTIONS는 MEMORY에서 정해준 틀 내부를 정의해주는 애라고 생각하면 된다. ex)MEMORY{ /*int_pflash : ORIGIN = 0x00400000, LENGTH = 0x003D4000*/ /* 4096KB - 176KB (sBAF + HSE)*/ int_pflash : ORIGIN = 0x00400000, LENGTH = 0x0002C000 /*modified by mwu*/ /* 2048KB - 176KB (sBAF + HSE)*/ 이런식으로 MEMORY 영역이 있다고 할 때, SECTIONS 부분에서SECTIONS{ .pflash..
관련 자료https://yohda.tistory.com/entry/LINUXBUILD-%EB%A7%81%EC%BB%A4%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8 [개발 도구] linker script글의 참고 - https://users.informatik.haw-hamburg.de/~krabat/FH-Labor/gnupro/5_GNUPro_Utilities/c_Using_LD/ldLinker_scripts.html#Input_section_description https://home.cs.colorado.edu/~main/cs1300/doc/gnu/ld_3.html - https://stackoverflow.com/questions/yohda.tistory.com 굿ㅇㅇㅇ 아..
멀티 테넌시 환경에서 single GPU를 다양한 테넌트(task)가 나눠서 사용하는 경우는 아래와 같이 GPU 공간 자체를 여러 태스크가 나눠서 사용하는 Spatial Sharing 경우와, 한번에 하나의 태스크만 실행되지만 시간 분할하여 여러 태스크를 실행하는 Temporal Sharing 방식으로 나눌 수 있다. 1. Spatial Sharing 말 그대로 하나의 GPU의 '공간'을 분할하여 다양한 task가 실행될 수 있게끔 하는 방법이다.spatial isolation을 구현하기 위해 NVIDIA에서는 MPS와 MIG라는 방법을 도입하였다. - Multi-Process Service(MPS)는 소프트웨어적으로 GPU안에서 여러 태스크가 동시에 실행될 수 있게끔 하는데, 메모리 격리는 지원하지 않..