본문 바로가기

내가 작업한 것들

(177)
Rock960A/B/C 용 rtl8152 커널 드라이버 소스 Rock960A/B/C 를 쓰는 사용자라면 아마 VAMRs 에서 배포하는 리눅스를 사용하고 있으시거나, 제가 따로 배포하는 AARCH64 빌드를 높은 확률로 사용 중 이실 것 입니다만, 이 커널이 4.4 에 기반을 하고 있는지라 Realtek 의 RTL8152 계열 USB LAN 이 ( 보통 USB 3.0 GbE 지원 제품 ) 위 화면처럼 (unnamed net_device) (uninitialized) 오류를 뱉으면서 커널에서 인식을 못하고 있는 상황을 경험 할 것입니다. 이는 커널에 포함된 r8152 내장드라이버가 너무 옛날 것이라 생기는 문제로 최신 드라이버는 ACPI 와 개선된 net API 등을 사용해서 또 바로 사용해서 컴파일 할 수 없으므로, 이를 기존 kernel 4.4 에 맞도록 수정한 ..
임베디드 리눅스 데스크탑 CPU 동작 속도 및 온도 모니터 프로그램 임베디드 리눅스를 쓰시는 분들이 요즘 많이 보급화 되고 있는 라즈베리파이 같은걸 통해서 꽤 늘어 나고 있는 것으로 사료 되어 한번 만들어 본 CPU 모니터 프로그램을 공개 합니다. 물론 오픈소스이며, 누구나 참여 가능한 상태 입니다. 이 프로그램은 htop 이나, 기본으로 제공하는 task manager 와 달리 CPU 온도와 각 core 간의 동작 속도를 확인 하기 편하게 만들어 진 것으로, 이미 잘 만들어져 유명한 존재들과 달리 임베디드의 목적에 맞게 동작온도와 실제 클럭의 동작 속도 ( 쓰로틀링 여부 확인 ) 등을 종합적으로 확인 할 수 있도록 만든 간단한 프로그램 입니다.특징ARM Little/Big core 에 대한 자동 그래프 비율 표시각 core 마다 동작 속도 실시간 측정core 갯수에 따..
ADATA SP900 64GB SSD 라즈베리 파이에 붙일 USB2.0 어뎁터 ( 구 LG 외장하드에서 적출 ) 와 함께 쓸 SSD로 ADATA SP900 64GB 를 구했습니다. 문제는 micro sd 가 요즘 128GB 나오는 시기에 무슨 64GB 겠는가? 싶겠지만, 아무래도 특성상 SD 가 가지는 접근속도와는 차원이 다른 속도와 수명을 가진 것은 아직 명백하다 보이기 때문 입니다.시스템상 정보는 다음과 같이 USB3.0 UASP 일 경우는 표준 SATA3 보다 조금 모자란 수준 까지는 동작 할 수 있습니다만, 기본적으로 컨트롤러 자체에서 TRIM 등을 지원하기 때문에 리눅스 커널에서 cond 로 주기적으로 fstrim 을 호출 하도록 하면 문제는 없을 것으로 보여 집니다. 저장소의 50% 를 쓰는 실험을 해 보면 다음과 같이, 평균 9..
PIGZ 2.4+ Windows 빌드 PIGZ 는 Parallel Implementation of GZip 의 약자로, https://zlib.net/pigz/ 에서 소스를 내려 받아 빌드 하거나, 많은 형태의 미리 빌드된 패키지로 내려 받을 수 있습니다만, 윈도우에서는 MSYS2 같은걸 쓰지 않는 이상 사실 사용이 어려운 경우가 많습니다. 그래서 미리 static 으로 빌드한 바이너리 두개를 올리니 필요하신 분들은 내려 받아 사용이 가능 합니다만, 이 프로그램은 GUI 같은게 없는 console 용 입니다. x86 32/64 를 따로 빌드해서 첨부하고 있으니, 자신의 시스템에 맞게 사용하시면 됩니다.
보케 효과를 만들어 보기 #2 - 성능향상 이 글은 이전 "보케 효과를 만들어 보기 #1" 에 이어지는 글 입니다. 혹시 이 글을 이전 글 보다 먼저 보신 분은 먼저 앞선 글을 읽고 오시면 더 이해 하시기 편할 것으로 예상 됩니다. 향상된 보케(빛망울) 효과 이전 글 에 소개된 보케효과 알고리즘은 0.1 초판으로서 현재 마지막 0.1.7.31 버젼에 비해 많은 것들이 모자란 버젼 이었습니다만, 그간 짬짬히 여러 문제를 수정 하고 성능을 비약적으로 향상 하여 근대의 다중 코어 CPU ( x86 및 ARM 계열 모두 해당 됨 ) 들에서 가장 효과적인 구동을 하도록 발전 하였습니다. 그 중 몇가지 수정 사항은 먼저, 효과를 적용하면서 발생하던 메모리 누수 ( 제 실수 였습니다만 ) 를 제거 하고, OpenMP 의 효과적인 구동으로 각 CPU threa..
보케 효과를 만들어 보기 #1 심도가 낮은 렌즈와, 큰 크기의 촬상면을 가진 DSLR 같은 종류가 아니면 찍기 힘든 사진이 있다면 아마 배경이 뭉개진 이미지들이 아닐까 합니다만, 사실 단순이 Gaussian blur 만 줘서는 큰 렌즈의 빛의 굴절로 인해 생기는 일명 Bokeh 라는 형태를 만들어 내기가 쉽지는 않습니다. 그래서 어떻게 Bokeh 를 만들어 낼까? 란 고민을 하다 scratchpixel.com 에 한 페이지를 보게 되었습니다. circualr shifting 이라는 형태를 가지고 빛이 렌즈와 조리개를 통해 촬상면에 맺히는 형태를 흉내 낸 시뮬레이션 정도 이긴 합니다만 꽤 그럴싸한 결과물을 얻을 수 있었습니다. 원래 소스는 조금 복잡한 처리를 해야 하나, 제가 이를 조금 수정 하여 다음 github 위치에 소스를 공개하..
libsrcnn (Super-Resolution Neural Networks) 맥에서 테스트 libsrcnn 이란? 참조1, 참조2 MacOSX 에서의 테스트 이번 테스트는 MacOSX 에서 기본 LLVM-GCC 를 사용하여 zsh로 성능 테스트를 해 보았습니다. 일단 MacOSX 에서는 기본적으로 HPC-GCC 가 아니고는 OpenMP 를 통한 CPU 가속을 할 수 없기 때문에, 기본적인 LLVM-GCC 의 Optimization 에 제한적으로 기능을 제한 해야 합니다.테스트 한 MacOSX모델명: MacBook Pro모델 식별자: MacBookPro12,1프로세서 이름: Intel Core i7프로세서 속도: 3.1 GHz총 코어 개수: 2L2 캐시(코어당): 256 KBL3 캐시: 4 MB메모리: 16 GB 테스트 이미지는 크기가 3:2 비율을 가지는 DSLR 로 촬영한 가로 2048px ..
고성능 신경망 Super-Resolution Image library - libsrcnn 소개 libsrcnn 은? libsrcnn 은 POSIX 를 포함한 Windows 에서도 DLL 로 사용이 가능 하도록 제공되는 오픈소스 라이브러리로서, Super-Resolution Imaging 을 OpenCV 와 같은 별도의 라이브러리를 사용하지 않고도 쓸 수 있도록 설계되고 만들어진 신경망이 적용된 고성능 엔진 입니다. 초창기는 ShuWang 의 오픈소스로 부터 시작하여, OpenCV 에서 발생하는 여러 낮은 성능과, Multi-thread 를 이용하지 못하는 단점등을 모두 보완한 프로젝트로서, 현존 이미지 복호처리 중 가장 띄어난 결과를 보여 주는 알고리즘이라 하겠습니다. 본 라이브러리는 ShuWang 의 오픈소스로 부터 기반을 하여 GCC, LLVM, CLANG 등으로 POSIX 에서 문제 없이 구..