How to build TensorFlow GPU from Source Code

Environment Date: 2018.11.28 OS: Ubuntu 18.04 Graphic Card: NVIDIA Geforce 2080ti Python: 3.6.7 NVIDIA Drive & Cuda 10.0 rm /etc/apt/sources.list.d/cuda*; apt remove nvidia-cuda-toolkit; apt remove nvidia-*; apt update; apt-key adv –fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub; bash -c ‘echo “deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /” > /etc/apt/sources.list.d/cuda.list’; apt update; apt install nvidia-driver-410; apt install cuda-10-0; [.bashrc] export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH nvcc -V;

My Frequently Used LaTeX Math

{x}^{2} superscript {x}_{i} subscript \boldsymbol{A} bold \frac{x}{y} fraction \pm ± \times × \text{-} short minus \cdots ⋯ \begin{cases} 0 \\ 1 \end{cases} definition by Cases \; – a thick space \: – a medium space \, – a thin space \! – a negative thin space \alpha alpha \beta beta \gamma gamma \delta delta

All About Volume for Houdini Artists

회사에서 Houdini Pyro 관련 세미나를 진행했었는데, 이 과정에서 등장하는 여러 가지 기술 용어들이 무엇을 의미하는지 궁금해하는 분들이 계셨습니다. 그래서 조금이나마 이해를 돕고자 Pyro와 관련된 이론적인 내용들을 정리하여 자료를 만들고 이 자료로 추가 세미나를 진행하고 있습니다. 아무래도 수식이 나오면 어렵게 느끼는 분들이 많아서 수식을 최소화하고 그 물리적인 의미를 직관적이고 쉽게 이해할 수 있도록 만들었는데, 기본적으로 물리를

Accumulated Angle

보통 회전(rotation)하는 양을 나타낼 때 [0,360) 범위의 숫자를 사용한다. 이러한 경우에 361º는 (360+1)º와 동일한 방향(orientation)을 나타내므로 1º로 표기한다. 그런데, 가끔 이러한 범위 제약 없이 연속적으로 누적하여 회전량을 표기해야 할 필요성이 있을 때가 있다. 예를 들어보자. 1 프레임(frame) 마다 1도씩 시계 방향으로 회전하는 애니메이션(animation)을 만든다고 생각해보자. 이러한 애니메이션(animation)의 데이터 순서는 다음과 같다. 0, 1, 2, …,

플레이모빌 미스터리 피규어

플레이모빌 미스터리 피규어. 하나에 5400원. 두 딸들이 너무 좋아한다. 무엇이 들어 있는지 뜯어보기 전에는 알 수 없다. 그래서 기존에 가지고 있는 것과 중복되지 않을 가능성을 조금이라도 높이기 위해서는 끊임없이 쪼물락 거려야 한다. 공학(engineering)을 하다 보니 모든 것을 deterministic하게 예측하는 것이 인류의 목적인줄 알았는데 랜덤하게 걸리는 것의 매력에서 헤어나오질 못하는 것을 보니 인류의 본성은 그렇지 아니한가보다.

권법소년, 용소야, 쿤타맨

언젠가부터 어릴적에 봤던 만화책이 보고 싶어 졌다. 특히 권법소년, 용소야, 쿤타맨. 모두 가지고 있던 만화책들이었는데 이제는 언제 없어졌는지도 정확히 기억이 나지 않는다. 사실 이 책들은 정판이 아니다. 그렇다고 해적판도 아니다. 콩콩 코믹스라는 회사에서 일본 원판을 저작권 없이 들여와서 베껴 그린 후 판매한 만화들이다. 어쨌든 몇 년 전 부터 다시 보고 싶다는 막연한 생각만 가지고 있다가

RenderMan 22.0 RtUString

올해는 RenderMan이 태어난지 30주년이 되는 해이다. 그리고, 어느덧 RenderMan version이 22.0이 되었다. 21.x 버전에 비해 22.0 버전은 많은 것이 바뀌었다고 하는데 바뀐 내용 중에는 다음과 같은 것도 있다. RtToken has been replaced, any string that is passed to the renderer must be a RtUString. Any customer code will need to implement this change. (https://rmanwiki.pixar.com/display/REN22/RenderMan+22.0) 위의

미국 DigiPro & SIGGRAPH 2018 Vancouver

캐나다 방문시 필요한 VISA인 eTA를 발급 받는 과정에서 사기를 당했다. 지난 번 캐나다 방문 때에도 비자가 필요 했었던가? 미국 ESTA 처럼 캐나다도 생긴 모양이다. 찾아보니.. “2016년 3월 15일부터 항공편으로 캐나다에 입국하거나 환승 하려면 전자여행 허가를 받아야 한다.”라고 한다. 아무 생각없이 구글에서 “canada eta”로 검색해서 eTA 신청 사이트를 찾았다. 그리고 절차에 따라 각 항목들을 입력했다. 1분

신과함께 2부작 중 두 번째 “인과 연” 개봉을 하루 앞두고

어느덧 신과함께 두 번째 편인 “인과 연” 개봉일이 내일로 다가왔습니다. 처음 시나리오를 읽어 봤을 때부터 2편의 성공에 대한 확신이 있었기 때문에 1편 개봉 직전 때와는 달리 마음이 편안합니다. 가족들과 함께 1편을 보고 나서 극장에서 나왔을 때 정말 착한 좋은 영화를 봤다고 말하던 어느 관람객의 말이 아직도 귀에 선명하게 남아 있습니다. 선정성, 폭력과 잔인함, 욕설 등이

어른

나이만 먹는다고 모두 어른이 되는건 아니다. 나이가 많은 사람이 예우와 대접을 받는 것은 단지 시간상 먼저 태어났고 살아온 날의 수가 많아서가 아니다. 하지만 많은 사람들이 이러한 착각을 하고 살아간다. 누군가에게 예우를 받는다는 것은 그렇게 쉽게 공짜로 얻어지는 것이 아니다. 더 많이 살아온 시간 동안 다양한 시도를 하면서 겪은 여러 가지 성공, 또는 실수와 실패의 뼈저린

2018 여름 휴가?

삼척 쏠비치로 가려던 여름 휴가 계획이 사정이 생겨서 하루 전에 전격 취소되고… 애들은 울고불고… 결국 로스트밸리 스페셜 투어로 간신히 달래서 하루 종일 에버랜드에서 여름 휴가비 다 쏟아붓고 옴. 아직 방학 전 월요일이라서 한적하게 에버랜드를 즐길 수 있었다. 대부분의 놀이기구들을 기다림 없이 탈 수 있기는 했지만 평일이라고 모든게 다 좋은건 아니었다. 많은 놀이기구들이 오후 1시 이후부터

The end point of the rainbow

The end of the rainbow from Wanho Choi on Vimeo. 갑작스럽게 쏟아진 소나기. 눈 앞에 펼쳐진 쌍무지개. 태어나서 처음 본 무지개의 끝 점. “신과 함께-인과 연” 또 천만?

“코딩 기술 교육? 차라리 추리소설을 쓰게 하세요”

출처: 한국일보 “코딩 기술 교육? 차라리 추리소설을 쓰게 하세요”라는 한국일보 기사를 읽고.. 두 분 대화의 요약본이라서 단언하기는 어렵지만.. 읽고 나서 드는 생각은.. 데니스 홍 교수님이 하는 말의 핵심이 무엇인지 교육감님은 전혀 이해하지 못할 것 같다. 우리나라 교육은 뭔가 자꾸 중앙식으로 통제를 하고 획일화 시키려는 무모한 시도를 버리지 않고 있다. 몇몇 교육 정책자들이 자신들만의 생각으로 좁은

우분투(Ununtu)에서 텐서플로우(TensorFlow) GPU 설치(install) 방법

Environment Date: 2018.06.15 OS: Ubuntu 18.04 Graphic Card: NVIDIA Geforce 1070 TensorFlow version: 1.80 Graphics Driver # add-apt-repository ppa:graphics-drivers/ppa # apt update # apt install nvidia-390 # nvidia-smi CUDA 9.0 # dpkg -i cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb # apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub # apt-get install cuda CUDA 9.0 Patch 1. Click the “Download” button. 2. Open with “Software Install

우분투(Ubuntu)에서 pip & pip3 설치(install) 방법

pip이란 python으로 작성된 패키지의 설치 및 관리를 해주는 프로그램이다. pip을 이용하면 의존성 문제를 자동적으로 해결해주기 때문에 편리하다. 만약 pip이 설치되어 있다면 pip list 명령을 통해 현재 설치되어 있는 패키지들의 리스트를 확인할 수 있다. pip은 Python 2.x용, pip3는 Python 3.x용 프로그램이다. apt-get install python-pip apt-get install python3-pip 예제) pip numpy matplotlib pillow pip3 numpy matplotlib pillow

apt-get update vs apt-get upgrade

[apt-get update] 사용 가능한 패키지의 리스트를 업데이트한다. 즉, 최신 버전의 패키지가 있는지 확인하는 과정. [apt-get upgrade] 패키지 리스트를 참고하여 이미 설치되어 있는 패키지의 최신 버전을 설치한다. 둘 중 하나가 다른 하나를 자동적으로 수행하지 않는다. 따라서, 1) apt-get update, 2) apt-get upgrade 순서로 실행해주어야 한다.

Angular Fisheye Image Mapping: 3D point ⟹ pixel

// given data Point worldPoint = ...; Point worldCameraPosition = ...; Point worldAimingPoint = ...; // the assumption in this example) // the camera's up vector = world y-axis Vector upVector = Vector( 0.0, 1.0, 0.0 ); // three orthogonal unit axes of the camera space // xAxis: right vector // yAxis: up vector //

NDK (Nuke Developer Kit)

NUKE is a non-destructive, node-based (procedural), 32-bit float, multi-channel, scanline, image compositing system using its own image processing graph (usually called Node Graph or DAG). (In addition to the scanline-based 2D image system there are also a number of sub-system available, such as 3D system, deep image compositing system, and particle system.) NUKE’s 2D architecture

Error: line 1: dlopen: cannot load any more object with static TLS

You may meet the error message “Error: line 1: dlopen: cannot load any more object with static TLS” when loading your own Maya plug-in. How solve the problem: 1. Unload Bifrost plug-ins (bimeshio.so, bifrostshellnode.so, bifrostvisplugin.so) and XGen plug-in (xgenToolkit.so). 2. Load your plug-in. Once you loaded your plug-in, you can load Bifrost and XGen plug-ins.

SOA vs AOS

SOA (Structure of Array) [position0, position1, position2, …] / [color0, color1,color2, …] / [normal0, normal1,normal2, …]   AOS (Array of Structure) [position0/color0/normal0], [position1/color1/normal1], [position2/color2/normal2], …

Missing GL version

목표: C code에서 offscreen rendering을 하고싶다. (내가 원하는 곳에서 내 마음대로 내 GPU를 사용해서 OpenGL drawing을 하고싶다.) 이렇게 하면 편한 경우가 종종 있다. (예를 들면, depth test, per pixel image processing 등) GLSL vertex shader와 fragment shader를 사용하면, 간단하게 GPU computing이 가능하며, texture sampling시 자동적인 interpolation과 hardware 기반의 빠른 access가 가능하다. 하지만, window creation 없이

초등 수학 개념 정리

아무리 애타게 설명하고 설명해도 개념을 전혀 이해하지 못하고 틀린 문제를 틀리고 또 틀리기를 반복한다. 속이 타들어가는 아비의 마음을 헤아리지 못하고 정작 본인은 방법을 찾고자 하는 간절함이 없으니 이러다 안되겠다 싶어 아비의 머리 속에 있는 지식 체계를 탈탈 털어 하나의 키노트 파일로 집대성 하니 부디 이 개념서를 바탕으로 많은 문제를 풀고 수학에 매진하여 부디 좋은 성과를

rpmbuild error

******************************************************************************* * * WARNING: ‘check-rpaths’ detected a broken RPATH and will cause ‘rpmbuild’ * to fail. To ignore these errors, you can set the ‘$QA_RPATHS’ * environment variable which is a bitmask allowing the values * below. The current value of QA_RPATHS is 0x0000. * * 0x0001 … standard RPATHs (e.g. /usr/lib); such RPATHs are

물리수학의 직관적 방법 中에서…

수학은 물리학을 하는데 있어 필요 불가결한 도구로서, 목적과 수단을 거의 병행해서 가르치게 되는 것이 보통이다. 그러나 수학을 배우는 과정에서 좌절해버리거나, 수식의 기하/물리적인 의미를 이해하지 못한 채 공식만을 외워서 계산에 익숙해져온 경우가 많다. 그렇게 말하는 나 자신 또한 학부에서 배운 curl의 rotation적인 의미를 잘 모르고 있었으며, 단순하고 기본적인 의미에 대해서 알게 된 것은 겨우 대학원 2학년이

Dynamic Korea

하루종일 대부분 뉴스만 나오는 뉴스 전문 채널 YTN이 생긴다고 했을 때 나는 이렇게 생각했다. “공중파 저녁 뉴스도 세 개나 있는데, 이렇게 작은 나라에서 하루종일 방송할 뉴스 거리가 있을까?” 완전한 오판이었다. 매일 수도 없이 많은 뉴스들이 쏟아져 나온다. 그 많은 뉴스들을 다루기에는 오히려 뉴스 시간이 짧다. 일주일에 한 번 녹화하는 시사 프로그램은 며칠 사이의 트랜드를 못따라간

exFAT on CentOS 7.x

yum install -y http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm yum install exfat-utils fuse-exfat  

인도네시아 롬복 & 싱가포르 가족 여행

회사 근속 5주년 기념으로 여행 지원금을 받게 되었다. 인도네시아 (발리, 롬복), 필리핀 (보라카이, 세부, 보홀), 팔라우, 베트남 (다낭), 말레이시아 (코타키나발루), 싱가포르, 브루나이, 태국 (푸켓, 방콕, 파타야, 코사무이), 라오스, 캄보디아, 괌, 사이판, 하와이, 몰디브, 뉴칼레도니아, 오키나와 등을 두고 고심을 거듭한 끝에 “인도네시아 롬복 + 싱가포르” 코스를 선택했다. 롬복은 지난해 11월 인근 발리섬의 아궁화산이 분화하면서 공항이 폐쇄되어