PyTorch에서 제공하는 Tensor Operators
PyTorch에서 제공하는 텐서 연산(operator)은
- homogeneous하고 contiguous한 텐서에 대해
- 모든 element에 동일한 연산을 적용하도록 설계된
- vectorized operation의 형태를 취함.
- 다른 이름으로 elementwise operation이라고도 불림.

이는 파이썬의 반복문 기반 연산에 비해
- 압도적으로 빠른 속도를 제공하며,
- 단일 연산자 호출만으로 전체 텐서에 대한 연산을 수행할 수 있게 함.
PyTorch의 elementwise 연산은
- NumPy의 ufunc과 기능적으로 유사한 역할(아래 3가지 참고)을 수행하지만,
- broadcasting 처리
- elementwise kernel 처리
- dtype promotion 처리
- 보다 광범위한 backend 를 통해 실행됨.
여기서, 커널(kernel)은 OS등의 kernel이 아님.
텐서나 배열의 요소에 대해 연산을 수행하는
C/C++ 혹은 CUDA로 구현된 실제 계산 함수(executable routine) 를 의미.
GPU·CPU에서
병렬 처리되는 "작은 단위의 계산 루틴"이라는 의미로
kernel이라는 용어를 사용함
(High-Performance Computing분야에서 많이 사용됨)
routine 에 대한 뜻은 다음을 참고:
2026.06.11 - [CE] - [CE] Routine 이란
[CE] Routine 이란
프로그래밍 및 CS에서 routine은특정 작업을 수행하기 위해정해진 순서로 작성된명령어들의 묶음을 의미함.즉, 넓은 의미에서는 다음을 모두 routine이라고 부를 수 있음.routine ├─ function ├─ proce
ds31x.tistory.com
다른 분야에서의 kernel의 뜻은 아래 링크를 참고:
[ML] Kernel Function 이란: Kernel Trick 포함
Kernel Function이란: 고차원으로의 매핑을 명시적으로 하지 않고도, 그 공간에서의 내적 값(innder product)을 직접 계산할 수 있게 해주는 함수 Kernel Function은머신러닝, 특히 SVM(Support Vector Machine) 과 같
dsaint31.tistory.com
즉, CPU뿐 아니라 GPU, XLA 장치 등 다양한 디바이스에서
동일한 연산이 자동으로 벡터화된 방식으로 처리됨.
실제로 PyTorch의 이러한 elementwise 연산들은
- homogeneous하고 contiguous한 데이터 레이아웃에 최적화된
- 고성능 바이너리 커널 구현물에 대한 바인딩(binding)이라고 볼 수 있음.
- 참고로, non-contiguous 텐서도 내부에서 contiguous copy를 만들거나 stride-aware kernel을 사용하는 방식으로 처리는 가능함 (약간의 성능감소는 있을 수 있음)
Python에서 간단히 사용할 수 있도록 high-level interface가 제공되지만,
- 실제 tensor 연산은 내부적으로 C++ 기반의 ATen backend를 통해
- CPU kernel 또는 CUDA kernel로 dispatch됨.
- 특히 GPU tensor 연산의 경우 CUDA kernel이 실행되어 대규모 tensor 연산을 병렬로 빠르게 처리함.
주요 예제
주요 예제는 다음의 글을 참고할 것:
2024.03.19 - [Python] - [Tensor] vectorized op. (or universal func)
[Tensor] vectorized op. (or universal func)
Numpy에서 제공하는 ufunc. (Universal Functions)은 homogeneous and contiguous tensor 에서 모든 elements에 같은 연산을 적용하여기존의 반복 loop에 기반한 연산에 비해 압도적인 속도를 보이면서 간편한 연산자
ds31x.tistory.com
inplace op.는 다음을 참고
2025.03.13 - [Python] - [PyTorch] in-place 연산이란?
[PyTorch] in-place 연산이란?
in-place 연산이란?in-place 연산은 원본 데이터 구조를 직접 수정하여 별도의 복사본을 만들지 않는 연산 방식을 가리킴.메모리 효율성이 높지만,원본 데이터가 변경된다는 점을 주의해야 함.주의
ds31x.tistory.com
같이 보면 좋은 자료
2025.03.07 - [Python] - [DL] Tensor 다루기 기초 - PyTorch 중심
[DL] Tensor 다루기 기초 - PyTorch 중심
https://dsaint31.tistory.com/891 [ML] Tensor: Scalar, Vector, Matrix.Tensor 종류1. Scalar (0차원 tensor)하나의 숫자로 표현되는 가장 기본적인 형태.크기(magnitude)만을 가지며 방향은 없음.예시: 온도(25°C), 나이(20),
ds31x.tistory.com
'ML' 카테고리의 다른 글
| MS COCO (Microsoft의 Common Object in Context) Dataset (1) | 2025.12.16 |
|---|---|
| Detection Task에서 collate_fn의 입·출력 구조와 default_collate의 한계 (0) | 2025.12.15 |
| Decision Tree - CART (Classification and Regression Trees) (0) | 2025.11.13 |
| [ML] History of ML (작성중) (1) | 2024.07.08 |
| [ML] Classification 과 관련 metrics 에 대한 소개. (0) | 2024.06.01 |