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안에서 여러 태스크가 동시에 실행될 수 있게끔 하는데, 메모리 격리는 지원하지 않..
일단 ssh로 로컬에서 서버 들어갈때부터 x11 fowarding해줘야함mobaxterm으로 설정하면 바로 된다서버내에서도 x11 설정필요 (구글링 ㄱㄱ)그리고 echo $DISPLAY로 서버내에서 값뜨는지 확인! 이후 서버 내에서 도커 돌릴때 docker run \ ${PARAMS} \ --env="DISPLAY" \ --network host \ --user ${USER}:${USER} \ -t \ -i \ --volume="$HOME/.Xauthority:/root/.Xauthority:rw" \ ${IMAGE_NAME} 이런식으로 인자를 주면됨