
안녕하세요.대 AI시대에 python한 우물만을 파고있는 Teus입니다이번 포스팅은, Python의 비동기 라이브러리인 aiofiles를 활용해서비동기로 Parquet파일을 읽어들이는 방법에 대해서 다룹니다.aiofiles 패키지를 이용해서 Bytes를 비동기로 읽어오고, 해당 Bytes를 활용해서 Parquet파일을 만들어 볼 예정입니다.0. Parquet파일?Parquet파일은 Data Engineering 분야에서 효율적으로 빅데이터를 저장하기 위해서 만들어진 확장자 포맷 입니다.기존에 CSV를 대체할 목적으로 나왔고, 이전에 홍반장님의 포스팅에서도 다룬적이 있습니다.Data Projects 에서 I/O Optimization by 홍반장parquet 파일은 기본적으로 apache에서 제공하는 py..

안녕하세요. Teus입니다. 이번 포스팅은 Flask 2.0에서 지원되는 Async함수에 대해서 이야기 합니다.1. Flask 2.0아마 처음에 Flask의 비동기 함수를 보고 Flask에서 비동기함수라니, 뭔 멍멍이같은 소리여😒 하실 수 있습니다. 하지만, Flask가 2.0으로 버전업이 되면서 Async함수를 쓸 수 있게 되었습니다.Flask Async Official Docs Using async and await — Flask Documentation (2.3.x)Using async and await Changelog Routes, error handlers, before request, after request, and teardown functions can all be coroutine ..

안녕하세요. Teus입니다. 이번 포스팅은 FastAPI에서 기본적으로 사용하는 WebServer인 Uvicorn의 workers가 어떤 의미를 갖는지 알아봅니다. 그리고 일반적으로 알기 어려운 WebServer의 역할을 Python코드를 통해서 알아봅니다.0. Gunicorn일반적으로 Web서버의 구성은 아래처럼 구성 됩니다.client WebServer WebApplicationServer(WAS) DBSpringboot같은 경우 Webserver의 역할을 Tomcat이나 Apache 서버가 해줍니다. 하지만 Python같은 경우 Gunicorn이라는 패키지를 통해서 Client의 Requests를 받고, 이를 WAS(=Django, FastAPI Application)로 넘겨줍니다. 그래서 이..

안녕하세요. Teus입니다. 이번 포스팅은 SIMD(Single Instrunction Multi Data)를 다룹니다. 이번에는 AVX를 Array로 사용하지않고, Pointer를 사용하는 패턴을 보도록 하겠습니다.1. _aligned_malloc_aligned_malloc(size_t data_size, size_t alignemnet_size)aligned_malloc은 기본적인 malloc과 다르게 alignement_size 만큼 Data끼리의 간격을 보장해주는 Malloc을 의미합니다. 일반적으로 16byte, 32byte씩 Data를 띄워주면 SIMD의 Data처리 효율이 증가한다고 알려져 있습니다.__m256d* arr1 = (__m256d*)_aligned_malloc(sizeof(dou..

안녕하세요. Teus입니다. 이번 포스팅은 SIMD(Single Instrunction Multi Data)를 다룹니다. 이번에는 AVX2의 기본 연산 중 쓸만한 함수 중 Permuting and Shuffling 을 다룹니다.1. PermutingPermuting은 사용자가 원하는 Order를 주고, 해당 Order를 기준으로 rearranged Vector를 구할 수 있는 방법입니다.Data TypeDescription_mm/mm256_permute_ps/pdSelect elements from the input vector based on an 8-bit control value_mm256_permute4x64_pd/epi64Select 64-bit elements from the input vec..

안녕하세요. Teus입니다. 이번 포스팅은 SIMD(Single Instrunction Multi Data)를 다룹니다. 이번에는 AVX2의 기본 연산 중 쓸만한 함수 중 FMA연산을 정리합니다.1. FMAFMA는 Fused Multiply and Add 연산 입니다. 영단어에서 알 수 있듯 곱셈과 동시에 덧셈을 하는 연산입니다. 가장 간단하게 표현하면ret = a*b + c 위 연산을 SIMD로 연산하는 명령어 입니다. 그럼 위 연산은 위해서 3개의 Vector가 필요하게 됩니다.TMI한번에 add와 mul연산을 동시에 할 수 있기 때문에, 한번에 2flops연산을 할 수가 있습니다.(한 cycle에 연산된다는 가정) 그래서 GPU에서는 core의 개수 * clock * 2flops로 성능이 측정됩니다..
- Total
- Today
- Yesterday
- GDC
- 컴퓨터그래픽스
- 자료구조
- 모바일청첩장
- 셀프모청
- stack
- 완전탐색 알고리즘
- 병렬처리
- 사칙연산
- 프로그래머스
- 청첩장
- 동적계획법
- 이분탐색
- Sort알고리즘
- git
- hash
- javascript
- 분할정복
- AVX
- react
- prime number
- Python
- C++
- Greedy알고리즘
- SIMD
- 코딩테스트
- Search알고리즘
- 알고리즘
- heap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |