[Vulkan Tutorial] 05-Create an Instance

목차: 01-Overview (Link)이전 글: 04-Create Sub-Module and Base Code (Link)다음 글: 06-TBD (Link) Vulkan API를 사용해서 프로그램 작성을 시작하면 가장 먼저 Instance를 생성해야 한다. 아래 코드 1은 Instance를 생성하기 위한 코드이다. 코드 1: Instance 생성 코드 Instance는 Vulkan Library를 로딩해서 Application과 연결하는 역할을 수행한다. Instance를 생성하기 위해서는 Application에 대한 정보를 작성해서 Instance 생성에 사용한다. Application 정보를 추가하는 과정은 꼭… Read More »

[GPU] Mali Valhall Architecture (Mobile GPU)

Previous GPU Architecture (Bifrost GPU) 지난 5월(2019년)에 Mali의 새로운 GPU Architecture Valhall이 공개되었다. 지난 Bifrost 대비 많은 변화가 있었다고 한다. 우선 지난 Bifrost에 대해서 짧게 정리하였다. Bifrost는 지난 2016년에 처음 공개되어서 그림 1과 같이 Mali-G71, Mali-G72, Mali-G76 순서대로 총 3세대(High-Tier GPU 기준)에 걸쳐서 제품으로 출시되었다. Bifrost는 ARM GPU 중 최초로 Scalar GPU 구조로 되어 있다.… Read More »

[Vulkan Tutorial] 04-Create Sub-Module and Base Code

목차: 01-Overview (Link)이전 글: 03-Development Environment (Link)다음 글: 05-Create an Instance (Link) Create Sub-Module on Android Project Base Code를 작성하기 이전에 안드로이드 프로젝트에 Sub-Module을 생성하는 방법에 대해서 정리하였다. Module을 따로 만들 필요 없이 01-init_instance module의 코드를 수정해도 상관은 없다. 개인적으로 mkVulkanExample이라는 Sub-Module을 만들어서 Vulkan 코드를 작성하고 싶어서 Sub-Module을 만드는 방법에 대해서 정리해보았다. 먼저 “VulkanSamples/API-Samples” 폴더 아래에 본인이 원하는… Read More »

[Vulkan Tutorial] 03-Development Environment

목차: 01-Overview (Link)이전 글: 02-Vulkan Overview (Link)다음 글: 04-Create Sub-Module and Base Code (Link) [Android] Vulkan Development Environment Android SDK/NDK를 다운받아서 Vulkan Example을 빌드하는 방법에 대해서 정리하였다. 해당 설정 방법은 Ubuntu Linux, Window, Mac에서 모두 테스트해 보았고 정상적으로 빌드되는 것까지 확인하였다. 이 글의 내용은 출처 2에 있는 내용을 기준으로 작성하였다. 먼저 Android Studio를 다운받아서 설치한다.… Read More »

[Vulkan Tutorial] 02-Vulkan Overview

목차: 01-Overview (Link)이전 글: 01-Overview (Link)다음 글: 03- Development Environment (Link) Origin of Vulkan  Vulkan은 기존에 개발된 그래픽(Graphics) API와 동일하게 여러 Platform(Window, Mac, Linux, Android, 등)에서 사용 가능하다. Vulkan은 기존에 개발된 그래픽 API의 문제점을 해결하기 위해서 만들어졌다고 한다. 기존 그래픽 API의 문제점 (예: OpenGL) 기존에 개발된 그래픽 API는 Fixed-Function(고정 연산)을 지원하는 GPU가 있던 시기에 만들어졌다. 기존 그래픽… Read More »

[Vulkan Tutorial] 01-Overview

목차: [Series 01] Overview (Link)다음 글: [Series 02] Vulkan Overview (Link) Vulkan Tutorial 공부를 하면서 작성한 코드와 읽은 내용을 정리할 계획이다. 이번 글 역시 대부분 출처 1 Vulkan Tutorial 내용을 기반으로 작성할 계획이다. 출처 1 Vulkan Tutorial 내용이 주기적으로 업데이트가 되는 것 같다. 이번 글의 경우 2018년 8월 (August, 2018)에 공유된 Vulkan Tutorial 내용을 기반으로… Read More »

[CUDA RT Series 8] Metal

목차: Series 1 – Index + Methodology (Link)이전 글: Series 7 – Iteration vs. Recursion (Link)다음 글: Series 9 – Dielectrics + Snell’s Law (Link) 출처 1에서 출처 2의 Chapter 8 내용부터는 추가적인 설명 없이 코드만 공유하고 있다. Chapter 8부터는 앞에 설명한 내용을 기반으로 CUDA 코드를 작성하면 된다고 한다. 그래서 Series 8부터는 변경된 코드 부분과 성능에 대해서만 간단히 작성할 계획이다.… Read More »

[Synology NAS] 웹소켓 설정 (Setting WebSocket)

Jupyter Notebook을 설치하고 역방향 프록시(Reverse Proxy)를 사용해서 Web 주소를 내부 서버의 특정 포트로 연결하는 과정에 웹소켓(WebSocket)에 대해서 알게 되었다. 기존에 작성한 글(출처 2)과 같이 Reverse Proxy만 설정하게 되면 Jupyter Notebook에 접속은 가능하다. 하지만, “Terminal”, “Python Kernel” 등에 제대로 접속을 하지 않는다. 인터넷을 찾아보니 Jupyter Notebook 역방향 프록시를 사용하기 위해서는 웹소켓 설정을 해야 한다고 한다 (출처… Read More »

[Linux-Ubuntu] Python 버전 변경

실험환경: Ubuntu 14.04 & Ubuntu 18.04 Ubuntu Linux에서 Python 버전을 변경하는 방법을 정리하였다. 모든 자료는 출처 1에 기준으로 작성하였다. 가장 먼저 아래 CMD를 실행해서 등록된 Python이 있는지 확인한다.  “//MK”는 주석을 의미하고, “$” 뒤에 있는 CMD는 Terminal에 실행해야 하는 부분이다. 만약 아래와 같은 에러 메시지가 나오면 등록된 Python이 없다는 의미이다.  그림1과 같은 에러 메시지가 나올 경우 아래와 CMD를… Read More »

[Linux-Ubuntu] Samba 공유 폴더 설정

실험 환경: Ubuntu 14.04, Ubuntu 18.04 Linux(Ubuntu)와 Window 사이에 파일을 공유(?)하기 위해서 Samba를 사용해서 공유 폴더를 설정한다. 아래 코드에 따라 실행하면 간단히 공유 폴더를 설정할 수 있다. “#”뒤는 주석이며, “$”뒤는 터미널에서 실행해야 하는 CMD이다. “#—#”안의 내용은 smb.conf 파일 마지막 부분에 작성해야 하는 코드이다. 모든 코드를 작성 후 Samba Service를 다시 실행하면 된다. 위와 같이 설정 완료 후 윈도우에서… Read More »