Category: 개발

AmigaDOS의 문자열 보간: {} 중괄호를 넘어서

2025-03-22

이 블로그 게시물에서는 AmigaDOS 셸 스크립트의 문자열 보간의 유연성과 특징을 살펴봅니다. AmigaDOS는 기본적으로 `<`와 `>`를 보간에 사용하지만 `.BRA`와 `.KET` 지시어를 통해 사용자 지정할 수 있습니다. 실험을 통해 인쇄 가능한 ASCII 문자와 인쇄 불가능한 ASCII 문자(BEL 및 NAK 등)를 포함한 다양한 문자 쌍의 성공적인 사용을 보여줍니다. 이는 AmigaDOS 스크립트 파서의 강력함과 예외적인 입력에 대한 복원력을 강조합니다.

Mozilla.ai의 오픈소스 프로젝트: AI로 OpenStreetMap 매핑 가속화

2025-03-22
Mozilla.ai의 오픈소스 프로젝트: AI로 OpenStreetMap 매핑 가속화

Mozilla.ai는 OpenStreetMap 매핑 프로세스를 가속화하도록 설계된 오픈소스 프로젝트인 OpenStreetMap AI Helper Blueprint를 출시했습니다. 이 프로젝트는 YOLOv11 객체 감지 모델과 SAM2 분할 모델을 효과적으로 결합하여 지도의 특징(예: 수영장)을 자동으로 식별하고 윤곽을 그려 효율성을 높입니다. 사용자는 제공된 Colab 환경에서 모델을 학습한 다음 수동으로 결과를 검증하여 매핑 속도를 크게 향상시키면서 품질 관리를 유지합니다. 이는 대규모 언어 모델에 의존하지 않고도 경량이며 로컬 친화적인 AI 모델이 커뮤니티 중심 프로젝트를 강화할 수 있음을 보여줍니다.

개발

Landrun: 경량화된 안전한 Linux 샌드박스

2025-03-22
Landrun: 경량화된 안전한 Linux 샌드박스

Landrun은 Landlock LSM을 사용하는 경량화된 Linux 샌드박스로, 커널 레벨 보안과 최소한의 오버헤드를 제공합니다. 디렉토리에 대한 세분화된 접근 제어를 허용하며, 읽기 및 쓰기 경로를 지원하고, 허용된 경로에서 실행 권한을 선택적으로 허용합니다. TCP 네트워크 접근 제어(바인딩 및 연결)도 포함되어 있습니다. Landlock LSM이 활성화된 Linux 커널 5.13 이상이 필요합니다(네트워크 제한에는 커널 6.8 이상). Landrun은 명령줄 인터페이스를 제공하여 읽기 전용, 읽기/쓰기, 실행, 특정 TCP 포트 바인딩 및 연결 등 샌드박스 권한을 쉽게 구성할 수 있습니다. 최선을 다하는 모드를 통해 이전 커널에서도 원활하게 작동합니다. 신뢰할 수 없거나 악의적인 코드를 안전하게 실행하는 데 적합합니다.

개발 커널 보안

두 개의 보고서가 오픈소스 CRA 규정 준수의 지식 격차와 모범 사례를 조명하다

2025-03-22
두 개의 보고서가 오픈소스 CRA 규정 준수의 지식 격차와 모범 사례를 조명하다

Linux 재단은 오픈소스 보안과 EU의 사이버 복원력 법(CRA)에 대응하기 위한 커뮤니티 주도 전략을 탐구하는 두 개의 획기적인 연구 보고서를 발표했습니다. 첫 번째 보고서는 세 개의 Linux 재단 프로젝트가 CRA의 최소 규정 준수 요구 사항을 어떻게 충족하는지 분석하고 모범 사례를 공유합니다. 두 번째 보고서는 CRA 인식에 대한 상당한 지식 격차를 드러내 많은 응답자가 CRA에 익숙하지 않고 규정 준수 준비가 되어 있지 않음을 보여줍니다. 보고서는 제조업체가 오픈소스 보안에서 더 적극적인 역할을 수행할 것을 권장하며 더 많은 자금과 법적 지원을 요구합니다.

FizzBee: 상호 배제와 Redlock의 함정 모델링

2025-03-22
FizzBee: 상호 배제와 Redlock의 함정 모델링

이 기사는 Starlark 기반의 새로운 형식 사양 언어인 FizzBee를 사용하여 상호 배제 알고리즘을 모델링하고 Redlock 알고리즘의 문제점을 조사한 저자의 경험을 자세히 설명합니다. 중요 구역, 잠금, 임대, 펜싱 토큰을 모델링함으로써 저자는 Redlock의 내결함성의 한계를 밝히고, 궁극적으로 펜싱 토큰이 상호 배제 문제를 완전히 해결하지 못함을 보여줍니다. 저자는 FizzBee의 사용 편의성과 단점을 논의하고 알고리즘 설계에서 형식 사양의 중요성을 강조합니다. 이 실용적인 연습은 저자의 펜싱 토큰에 대한 이해의 미묘한 결함을 예상치 못하게 드러내어 형식적 방법의 가치를 강조합니다.

PyTorch 내부 심층 탐구: 텐서, Autograd 및 커널 작성 가이드

2025-03-22

이 블로그 게시물은 텐서 데이터 구조, 자동 미분(Autograd) 및 커널 작성을 포함하여 PyTorch의 내부 메커니즘을 자세히 설명합니다. 먼저 스트라이드 개념과 텐서 뷰 생성 방법을 포함하여 텐서의 기본 구현에 대해 설명합니다. 다음으로 역전파를 통한 그래디언트 계산 방법을 보여주는 Autograd의 작동 방식을 자세히 살펴봅니다. 마지막으로 PyTorch 커널 작성에 대한 실용적인 가이드를 제공하며, PyTorch에서 제공하는 도구를 사용하여 오류 확인, 데이터 유형 디스패치 및 병렬 처리 방법을 설명합니다. PyTorch 사용에 능숙하고 내부 메커니즘을 깊이 이해하거나 코드에 기여하고자 하는 개발자에게 유용한 튜토리얼입니다.

개발

Linux에서 /lib를 실수로 삭제했을 때 복구하는 방법

2025-03-22

이 게시글에서는 중요한 `/lib` 디렉토리를 실수로 삭제한 Linux 시스템을 복구하는 방법을 자세히 설명합니다. 작성자는 정적 busybox와 같은 기존 도구를 활용하는 방법부터 최소한의 정적으로 컴파일된 C 프로그램을 만들어 필수 파일을 바꾸는 방법까지 여러 가지 방법을 탐구합니다. 단계별 가이드에서는 bash의 내장 함수와 네트워크 전송을 사용하는 기술을 다루며, OS를 다시 설치하지 않고도 해결할 수 있는 방법을 제시합니다.

FastOpenAPI: Pydantic 기반 OpenAPI 생성기

2025-03-22
FastOpenAPI: Pydantic 기반 OpenAPI 생성기

FastOpenAPI는 Pydantic과 다양한 프레임워크를 사용하여 OpenAPI 스키마를 생성하고 통합하는 라이브러리입니다. FastAPI와 유사한 개발자 친화적인 경험을 제공하는 것을 목표로 합니다. Falcon, Flask, Quart, Sanic, Starlette, Tornado를 지원하며, 프록시 라우팅을 통해 FastAPI 스타일의 라우팅을 제공합니다. 간단한 pip 설치로 빠르게 시작할 수 있으며, Swagger UI와 ReDoc UI를 통해 편리하게 문서를 확인할 수 있습니다. 포괄적인 예제와 벤치마크도 제공됩니다.

애플리케이션 아키텍처의 진화와 경량 오케스트레이션의 부상

2025-03-22
애플리케이션 아키텍처의 진화와 경량 오케스트레이션의 부상

90년대 3계층 아키텍처에서 오늘날 마이크로서비스 중심의 세계에 이르기까지 애플리케이션 아키텍처는 극적인 변화를 겪었습니다. 분산 백엔드 작업을 조정하기 위해 오케스트레이션 계층이 등장했습니다. 그러나 기존의 DIY 솔루션은 복잡하고 유지 관리가 어려우며 전용 오케스트레이션 시스템은 자체적인 복잡성을 도입합니다. 이 기사에서는 새로운 접근 방식을 제시합니다. 오케스트레이션 기능을 경량 라이브러리에 통합하고 데이터베이스를 사용하여 실행 상태를 유지함으로써 개별 오케스트레이션 계층을 제거하고 개발, 테스트, 디버깅 프로세스를 간소화하여 궁극적으로 더 안정적이고 효율적인 애플리케이션 아키텍처를 구현합니다.

Ruby: AI 혁명의 예상치 못한 언어?

2025-03-22

대규모 언어 모델(LLM)은 코드 생성에 뛰어나지만, 제한된 컨텍스트 창 때문에 대규모 코드베이스 작업이 어렵습니다. 이 기사에서는 LLM 지원 프로그래밍의 '파워'를 탐구합니다. 프로그램을 표현하는 데 필요한 토큰 수입니다. 저자는 간결성 때문에 LLM에는 Python이 Go보다 낫다고 주장합니다. 이를 통해 토큰 제한 내에서 더 많은 기능을 사용할 수 있습니다. 또한, 우아하고 간결한 것으로 알려진 Ruby는 토큰을 효율적으로 사용하기 때문에 LLM에 이상적인 언어로 제시됩니다. 형식 검사와 같은 과제가 남아 있지만, Ruby의 인간 중심 설계는 아이러니하게도 LLM에 대한 잠재적인 선두 주자입니다.

개발

GitHub 코드 제안 적용 제한

2025-03-22
GitHub 코드 제안 적용 제한

이 텍스트는 GitHub 코드 검토 프로세스에서 코드 제안을 적용할 때 발생할 수 있는 다양한 제한 사항을 나열합니다. 여기에는 코드 변경이 없음, 풀 리퀘스트가 닫히거나 병합됨, 변경 사항의 일부만 표시됨, 줄마다 하나의 제안만 적용 가능, 삭제된 줄에 대한 제안 적용은 지원되지 않음, 제안이 이미 적용되었거나 해결됨으로 표시됨, 보류 중인 검토에서 제안을 적용할 수 없음, 여러 줄의 주석에 대한 제안은 허용되지 않음 등이 포함됩니다. 이러한 제한 사항으로 코드 검토 프로세스의 무결성과 정확성이 보장됩니다.

개발

새로운 타입 생성을 두려워 말라: Go와 C로부터 배우는 교훈

2025-03-22

많은 개발자들이 코드베이스에 새로운 타입을 생성하는 것을 꺼립니다. 이 글에서는 이것이 인지된 '거대 설계'를 변경하고 복잡성을 추가하는 것에 대한 두려움에서 비롯된다고 주장합니다. 그러나 저자는 값들의 집합이 자연스럽게 함께 속할 때 새로운 타입을 생성함으로써 코드의 가독성과 유지보수성이 크게 향상된다고 주장합니다. Go를 예로 들어, `CreateSubscriptionRequest` 구조체처럼 작고 특정 목적에 맞는 타입을 생성하는 이점을 강조하며, 함수 호출 간 데이터 처리를 간소화합니다. 저자는 개발자들에게 새로운 타입 생성에 대한 불안감을 극복할 것을 촉구하며, C와 Go 문화에서는 이러한 관행이 일반적이고 받아들여진다는 점을 강조합니다. 단, 타입의 목적이 이름을 통해 명확하게 전달되어야 합니다.

개발

중앙 집중식 권한 부여: 다음 공유 플랫폼?

2025-03-22
중앙 집중식 권한 부여: 다음 공유 플랫폼?

이 글에서는 중앙 집중식 권한 부여 시스템의 장점과 단점을 살펴봅니다. 기존에는 권한 부여가 애플리케이션별로 분산되어 비효율적이고 관리가 어려웠습니다. 중앙 집중식 시스템은 표준화, 비용 절감, 규정 준수 향상을 제공하지만, 표현력, 성능, 격리, 통합과 같은 과제를 해결해야 합니다. 이 글에서는 오픈소스(Topaz) 및 상용(Aserto) 플랫폼이 이러한 과제를 어떻게 극복하고 효율적이고 안전하며 관리하기 쉬운 엔터프라이즈 수준의 권한 부여를 달성하는지 설명합니다.

스크립트에서 긴 옵션 사용하기

2025-03-22

많은 명령줄 유틸리티는 짧은 옵션(-f)과 긴 옵션(--force)을 모두 지원합니다. 짧은 옵션은 대화형 사용에 편리하지만, 긴 옵션은 스크립트에서 훨씬 더 뛰어납니다. 가독성 향상과 자체 설명적인 특성으로 유지 관리성과 이해도가 향상됩니다. 예를 들어 Git에서는 `git switch --create release-{today} origin/main`이 `git switch -c my-new-branch`보다 훨씬 명확하며, 특히 복잡한 스크립트에서 그렇습니다.

개발 긴 옵션

Frink: 실용적인 계산 도구 및 프로그래밍 언어

2025-03-21

Frink는 물리 계산을 단순화하고, 정확한 답을 보장하며, 실제로 유용한 도구를 제공하기 위해 설계된 강력한 계산 도구이자 프로그래밍 언어입니다. 계산 전반에 걸쳐 단위(피트, 미터, 킬로그램, 와트 등)를 추적하여 단위를 투명하게 혼합하고 결과를 검증할 수 있습니다. Frink는 또한 많은 물리 상수 데이터베이스를 갖추고 있으며, 여러 언어, 고급 수학 함수, 단위 변환, 날짜/시간 연산, 정규 표현식, 그래픽을 지원하며, 객체 지향 프로그래밍과 Java 코드 호출도 지원합니다. 다양한 운영 체제와 기기에서 실행되며 Java Web Start를 통해 자동으로 업데이트됩니다.

MySQL 초당 트랜잭션 수 대 fsync 수: 미스터리 풀기

2025-03-21

이 글에서는 MySQL의 트랜잭션 처리량에 대한 이론적 값과 실제 값의 차이를 조사합니다. 벤치마크 테스트 결과, MySQL의 실제 쓰기 속도는 이론적으로 예측된 속도(fsync() 대기 시간 기반)보다 훨씬 빠른 것으로 나타났습니다. 추가 조사 결과, MySQL이 WAL과 binlog에 대한 쓰기를 일괄 처리하는 그룹 커밋 기술을 사용하고 있으며, 파일 시스템/디스크도 유사한 일괄 처리를 수행하고 있을 가능성이 있는 것으로 밝혀졌습니다. 이를 통해 효율성이 향상됩니다. 또한, 저자는 역색인의 성능을 분석하고 이론 모델과 실제 성능의 차이점에 대한 원인을 설명합니다.

개발

나만의 x86 운영체제 만들기: 실용 가이드

2025-03-21

이 책은 나만의 x86 운영체제를 만드는 방법을 알려주는 실용적인 가이드입니다. 개발 환경 설정부터 멀티태스킹 구현까지 각 단계별로 자세한 설명과 코드 예제를 제공합니다. 저자들은 자신의 경험을 공유하고 추가 자료를 위한 링크를 제공합니다. 메모리 관리, 인터럽트 처리, 가상 메모리, 파일 시스템, 시스템 콜 등의 주제를 다루고 있으며, 시스템 프로그래밍 경험이 있는 독자에게 적합합니다.

Ubuntu, 기본적으로 Rust 유틸리티 사용 전환 검토

2025-03-21

Ubuntu는 향후 25.10 릴리스에서 기존의 많은 GNU 유틸리티를 uutils 프로젝트와 같은 Rust 구현으로 교체할 계획입니다. 이러한 Rust 도구의 적합성을 테스트하기 위해 Canonical의 엔지니어링 부사장인 Jon Seager는 이 도구들을 쉽게 활성화하거나 비활성화할 수 있는 명령줄 유틸리티 oxidizr를 출시했습니다. 이러한 조치는 Ubuntu의 안정성과 보안을 향상시키고 더 많은 기여자를 유치하기 위한 것입니다. 커뮤니티의 반응은 엇갈리고 있지만 이러한 변화는 Rust의 채택과 Linux 배포판의 미래에 상당한 영향을 미칠 수 있습니다.

개발

Hyperbrowser MCP 서버: 웹 스크래핑 및 데이터 추출 간소화

2025-03-21
Hyperbrowser MCP 서버: 웹 스크래핑 및 데이터 추출 간소화

Hyperbrowser는 모델 컨텍스트 프로토콜(MCP) 서버를 출시했습니다. 이는 웹 페이지 스크래핑, 구조화된 데이터 추출, 웹사이트 크롤링을 위한 강력한 도구입니다. OpenAI의 CUA, Anthropic의 Claude Computer Use, Browser Use 등 다용도 브라우저 에이전트에 대한 액세스도 간소화합니다. 서버는 웹 페이지 스크래핑, 웹 크롤링, 구조화된 데이터 추출, Bing 검색, 다양한 브라우저 자동화 기능 등을 갖추고 있습니다. 설치는 간단하며, `npx hyperbrowser-mcp `를 실행하고 관련 구성 파일을 구성하기만 하면 됩니다.

개발

ClickHouse 락 경쟁: 1년간 지속된 성능 병목 현상

2025-03-21

Tinybird는 피크 로드 중 ClickHouse 클러스터의 CPU 사용률이 매우 낮은 문제를 1년 동안 겪었습니다. 근본 원인은 Context 락 경쟁으로 밝혀졌습니다. `ContextLockWaitMicroseconds` 메트릭을 추가하여 락 대기 시간을 모니터링하고 Context 락 메커니즘을 재설계함으로써(단일 글로벌 뮤텍스를 읽기-쓰기 뮤텍스로 교체) 성능이 크게 향상되었습니다. 이 글에서는 Clang의 스레드 안전성 분석을 사용하여 동시성 문제를 디버깅 및 해결하는 방법과 QPS가 3배 증가하고 CPU 사용률이 크게 향상된 벤치마크 결과에 대해 자세히 설명합니다.

개발

잘못 발음하고 있을지도 모르는 기술 용어들

2025-03-21

이 글에서는 독학으로 개발하는 솔로 개발자가 접하게 된 기술 용어들의 일반적인 잘못된 발음을 다룹니다. Asus(AY-soos, AY-sis가 아님), Debian(DEHB-eee-in, DEE-bee-inn이 아님) 등 많은 예시를 제시하며, 이러한 발음들에 내재된 논리가 없다는 점을 강조합니다. 저자는 Google의 발음 위젯을 유용한 자료로 사용할 것을 제안하며, Atlassian, daemon, Gaussian, GIF, Gnome, GNU, JSON, Kernighan, LaTeX, Linus, Poisson, pypi, Qt, Redis, regex, repo, sudo, SUSE, SQL, SQLite, Ubuntu, Vite 등 정확한 발음이 담긴 포괄적인 목록을 제공합니다. 개발자와 기술 애호가 모두에게 귀중한 자료입니다.

arXivLabs: 커뮤니티와의 협업 실험 프로젝트

2025-03-21
arXivLabs: 커뮤니티와의 협업 실험 프로젝트

arXivLabs는 협업자들이 arXiv의 새로운 기능을 웹사이트에서 직접 개발하고 공유할 수 있는 프레임워크입니다. arXivLabs에 참여하는 개인 및 조직은 개방성, 커뮤니티, 우수성, 사용자 데이터 개인 정보 보호라는 arXiv의 가치를 수용하고 준수합니다. arXiv는 이러한 가치에 전념하며, 이러한 가치를 공유하는 파트너와만 협력합니다. arXiv 커뮤니티에 가치를 더할 프로젝트 아이디어가 있으십니까? arXivLabs에 대해 자세히 알아보세요.

개발

arXivLabs: 커뮤니티와 함께하는 실험 프로젝트

2025-03-21
arXivLabs: 커뮤니티와 함께하는 실험 프로젝트

arXivLabs는 협력자들이 arXiv의 새로운 기능을 웹사이트에서 직접 개발하고 공유할 수 있도록 하는 실험적인 프레임워크입니다. arXivLabs와 협력하는 개인 및 조직은 개방성, 커뮤니티, 우수성, 사용자 데이터 개인 정보 보호라는 우리의 가치를 수용하고 있습니다. arXiv는 이러한 가치에 전념하며, 이를 준수하는 파트너와만 협력합니다. arXiv 커뮤니티에 가치를 더할 프로젝트 아이디어가 있으십니까? arXivLabs에 대해 자세히 알아보세요.

개발

경량 버전 관리 시스템: Game of Trees 출시

2025-03-21

Game of Trees (Got)는 사용 편의성과 단순성을 우선시하는 경량의 사용자 친화적인 버전 관리 시스템입니다. 현재 개발 중이며, 주로 OpenBSD 개발자를 대상으로 하며, 버전화된 데이터에는 Git 저장소를 사용합니다. Got에서 아직 구현되지 않은 기능은 Git으로 처리할 수 있으며, 동일한 저장소에서 Got과 Git을 동시에 사용할 수 있습니다. BSD 라이선스에 따라 소프트웨어는 무료이며 재사용 가능합니다.

개발

Mathup: 빠른 수학 표현식 파서

2025-03-21

Mathup은 AsciiMath에서 영감을 받은 마크업 언어로 작성된 간단한 수학 식을 구조화된 MathML로 변환하는 경량 도구입니다. 식을 파싱하고 변환만 수행하고 렌더링을 브라우저에 맡기기 때문에 MathJax보다 빠릅니다. Mathup은 분수, 아래 첨자/위첨자, 행렬, 텐서 등 광범위한 수학 기호와 함수를 지원합니다. 글꼴, 색상, 배경 등 다양한 사용자 정의 옵션을 제공합니다. 개발자는 명령줄, 서버 또는 브라우저에서 Mathup을 사용하여 수학 식을 빠르고 효율적으로 처리할 수 있습니다.

개발 수학식

Screen: 풍부한 텍스트 UI를 위한 순수 PHP 터미널 에뮬레이터

2025-03-21
Screen: 풍부한 텍스트 UI를 위한 순수 PHP 터미널 에뮬레이터

Screen은 순수 PHP로 작성된 터미널 에뮬레이터 라이브러리로, 어떤 PHP 애플리케이션에서도 풍부한 텍스트 기반 사용자 인터페이스를 만들 수 있습니다. 처음에는 Laravel용 Solo의 다중 프로세스 TUI에서 ANSI 이스케이프 코드 충돌을 해결하기 위해 개발되었습니다. Screen은 가상 터미널 버퍼를 생성하여 ANSI 작업(커서 이동, 색상 변경, 화면 지우기 등)을 안전하게 처리함으로써 일관된 렌더링을 보장합니다. 유니코드, 멀티바이트 문자, 스크롤링 및 광범위한 ANSI 이스케이프 코드를 지원하며, 독창적인 시각적 비교 시스템을 갖춘 포괄적인 테스트 스위트를 통해 정확한 에뮬레이션을 보장합니다.

개발 텍스트 UI

NeRFies와 UMI-On-Legs 기반 오픈소스 웹사이트 템플릿

2025-03-21

이 웹사이트 템플릿은 AnyCar UMI-On-Legs와 NeRFies의 우수한 디자인을 기반으로 수정되었으며 코드가 간소화되었습니다. 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 라이선스가 부여되어 무료로 수정 및 사용할 수 있지만, 푸터에 NeRFies 페이지 링크를 남겨두고 불필요한 분석 코드를 제거해야 합니다.

안전하고 효율적인 Rust 기반 RDP 클라이언트: IronRDP

2025-03-21
안전하고 효율적인 Rust 기반 RDP 클라이언트: IronRDP

IronRDP는 Microsoft 원격 데스크톱 프로토콜(RDP)의 안전한 구현을 제공하는 Rust crate의 모음입니다. 압축되지 않은 원시 비트맵, RLE, RDP 6.0 비트맵 압축, Microsoft RemoteFX 등 다양한 코덱을 지원합니다. 완벽한 비동기 RDP 클라이언트와 통합을 용이하게 하기 위한 차단 예제가 포함되어 있습니다. 또한 그래픽 성능을 향상시키기 위해 서버에서 RemoteFX를 활성화하는 방법에 대한 자세한 설명도 제공합니다.

개발

MLIR 및 E-Graph를 사용한 Python 표현식 장난감 컴파일러

2025-03-21
MLIR 및 E-Graph를 사용한 Python 표현식 장난감 컴파일러

이 문서는 MLIR과 egglog 라이브러리를 사용하여 구축된 Python 표현식 장난감 컴파일러에 대해 자세히 설명합니다. 이 컴파일러는 E-Graph를 사용하여 등식 포화 및 항목 재작성을 수행하여 Python 표현식을 최적화한 다음 MLIR로 컴파일합니다. 표현식 모델링, 내장 함수, Term IR, 변환 레이어, 최적화 레이어, MLIR 코드 생성 및 LLVM 백엔드와 같은 모듈을 갖추고 있습니다. Python 함수를 기호적으로 해석하고 IR 표현으로 변환하고 최적화 규칙을 적용하여 최종적으로 효율적인 MLIR 코드를 생성함으로써 LLVM을 통해 컴파일 및 실행을 달성합니다.

개발

Torch Lens Maker: PyTorch 기반 미분 가능한 기하 광학 라이브러리

2025-03-21

Torch Lens Maker는 PyTorch를 기반으로 하는 미분 가능한 기하 광학을 위한 오픈소스 Python 라이브러리입니다. 야심찬 목표는 현대적인 컴퓨팅과 최첨단 수치적 최적화를 사용하여 실제 세계의 복잡한 광학 시스템(렌즈, 거울 등)을 설계하는 것입니다. 핵심은 미분 가능한 기하 광학: PyTorch에 구현된 3D 충돌 감지 및 광학 법칙입니다. 광학 요소를 신경망의 레이어로 교묘하게 취급하고 PyTorch의 자동 미분 및 최적화 알고리즘을 활용함으로써 렌즈 설계는 신경망 훈련과 놀랍도록 유사해지며, 현대 머신러닝 도구의 힘을 발휘합니다. 이 프로젝트는 아직 초기 단계이며 개발을 계속하기 위한 자금 지원을 요청하고 있습니다.

개발 렌즈 설계
1 2 132 133 134 136 138 139 140 214 215