<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Finite Difference | The Logos</title><link>https://thelogos.dev/tags/finite-difference/</link><description>AI-friendly Korean/English knowledge hub designed for fast crawling while remaining welcoming to human visitors.</description><generator>Hugo 0.148.2</generator><language>ko-KR</language><managingEditor/><webMaster/><lastBuildDate>Fri, 26 Jun 2026 03:44:01 +0000</lastBuildDate><atom:link href="https://thelogos.dev/tags/finite-difference/index.xml" rel="self" type="application/rss+xml"/><item><title>텐서(Tensor): 좌표계가 바뀌어도 남는 계산의 언어</title><link>https://thelogos.dev/posts/tensor-calculus-stencil-ai/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0900</pubDate><dc:creator>DaeYoung Kim</dc:creator><category>engineering</category><category>Tensor</category><category>Tensor Calculus</category><category>Stencil</category><category>Finite Difference</category><category>TensorFlow</category><category>Tensor Core</category><category>General Relativity</category><guid isPermaLink="true">https://thelogos.dev/posts/tensor-calculus-stencil-ai/</guid><description>&lt;div
class="ai-summary-box my-6 p-5 rounded-2xl bg-indigo-50/50 dark:bg-slate-800/50 backdrop-blur-sm border border-indigo-100 dark:border-indigo-500/20 shadow-sm relative overflow-hidden group">
&lt;div
class="absolute inset-0 bg-gradient-to-br from-indigo-500/5 to-purple-500/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500 pointer-events-none">
&lt;/div>
&lt;div class="relative z-10 flex items-start gap-4">
&lt;div class="flex-1">
&lt;div class="flex items-center gap-2 mb-2">
&lt;span
class="inline-flex items-center rounded-md bg-indigo-100 px-2.5 py-1 text-xs font-bold text-indigo-700 dark:bg-indigo-500/20 dark:text-indigo-300 ring-1 ring-inset ring-indigo-700/10 dark:ring-indigo-400/20 shadow-sm">
&lt;svg class="w-3.5 h-3.5 mr-1.5" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
&lt;path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6">&lt;/path>
&lt;/svg>
AI 요약
&lt;/span>
&lt;/div>
&lt;div class="text-slate-700 dark:text-slate-300 text-sm md:text-base leading-relaxed break-keep [&amp;>p]:m-0">
텐서는 숫자를 담는 다차원 배열이면서, 더 깊게는 좌표계가 바뀌어도 같은 기하학적 대상을 표현하도록 성분 변환 규칙을 함께 가진 객체다. 이 관점은 일반상대성이론의 공변 미분, 격자 위에서 미분방정식을 근사하는 스텐실 계산, 딥러닝의 대규모 행렬 곱셈까지 이어진다. 핵심은 "무엇이 관찰자의 좌표계에 따라 바뀌고, 무엇이 실제 구조로 남는가"를 분리하는 것이다.
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="인터랙티브-인포그래픽">인터랙티브 인포그래픽&lt;/h2>
&lt;p>좌표축을 돌리면 벡터의 성분은 바뀌지만 실제 화살표는 그대로 남는다. 아래 인포그래픽은 이 직관에서 출발해 텐서 rank, 공변 미분, 5점 스텐실, Tensor Core의 행렬 곱셈까지 하나의 계산 흐름으로 연결한다.&lt;/p></description><content:encoded>&lt;![CDATA[<div class="ai-summary-box my-6 p-5 rounded-2xl bg-indigo-50/50 dark:bg-slate-800/50 backdrop-blur-sm border border-indigo-100 dark:border-indigo-500/20 shadow-sm relative overflow-hidden group"><div class="absolute inset-0 bg-gradient-to-br from-indigo-500/5 to-purple-500/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500 pointer-events-none"/><div class="relative z-10 flex items-start gap-4"><div class="flex-1"><div class="flex items-center gap-2 mb-2"><span class="inline-flex items-center rounded-md bg-indigo-100 px-2.5 py-1 text-xs font-bold text-indigo-700 dark:bg-indigo-500/20 dark:text-indigo-300 ring-1 ring-inset ring-indigo-700/10 dark:ring-indigo-400/20 shadow-sm"><svg class="w-3.5 h-3.5 mr-1.5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
AI 요약</span></div><div class="text-slate-700 dark:text-slate-300 text-sm md:text-base leading-relaxed break-keep [&>p]:m-0">
텐서는 숫자를 담는 다차원 배열이면서, 더 깊게는 좌표계가 바뀌어도 같은 기하학적 대상을 표현하도록 성분 변환 규칙을 함께 가진 객체다. 이 관점은 일반상대성이론의 공변 미분, 격자 위에서 미분방정식을 근사하는 스텐실 계산, 딥러닝의 대규모 행렬 곱셈까지 이어진다. 핵심은 "무엇이 관찰자의 좌표계에 따라 바뀌고, 무엇이 실제 구조로 남는가"를 분리하는 것이다.</div></div></div></div><h2 id="인터랙티브-인포그래픽">인터랙티브 인포그래픽</h2><p>좌표축을 돌리면 벡터의 성분은 바뀌지만 실제 화살표는 그대로 남는다. 아래 인포그래픽은 이 직관에서 출발해 텐서 rank, 공변 미분, 5점 스텐실, Tensor Core의 행렬 곱셈까지 하나의 계산 흐름으로 연결한다.</p><style>
.thelogos-interactive-frame-shell {
box-sizing: border-box;
width: 100%;
max-width: 100%;
margin: 36px 0 56px;
overflow: hidden;
border: 1px solid rgba(15, 23, 42, 0.16);
border-radius: 18px;
background: #07111f;
box-shadow: 0 24px 60px rgba(15, 23, 42, 0.16);
}
.dark .thelogos-interactive-frame-shell,
body.dark .thelogos-interactive-frame-shell {
border-color: rgba(255, 255, 255, 0.12);
box-shadow: 0 24px 70px rgba(0, 0, 0, 0.36);
}
.thelogos-interactive-frame-shell iframe {
display: block;
width: 100%;
min-height: 680px;
border: 0;
background: #07111f;
}
.thelogos-interactive-frame-fallback {
padding: 16px 18px;
margin: 0;
color: #d7e5f5;
background: #0f1d33;
}
@media (max-width: 640px) {
.thelogos-interactive-frame-shell {
margin-top: 28px;
margin-bottom: 44px;
border-radius: 14px;
}
.thelogos-interactive-frame-shell iframe {
min-height: 760px;
}
}</style><div class="thelogos-interactive-frame-shell"><iframe src="/markov-extensions/tensor-calculus-stencil-ai/" title="텐서(Tensor): 좌표계가 바뀌어도 남는 계산의 언어 인터랙티브 인포그래픽" loading="lazy" scrolling="no"/><noscript><p class="thelogos-interactive-frame-fallback">
자바스크립트가 꺼져 있으면 인터랙티브 인포그래픽이 표시되지 않을 수 있다.<a href="/markov-extensions/tensor-calculus-stencil-ai/">인포그래픽 페이지를 직접 열기</a></p></noscript></div><script>
(function () {
const shell = document.currentScript.previousElementSibling;
const iframe = shell && shell.querySelector('iframe');
if (!iframe) return;
function currentTheme() {
return (document.documentElement.classList.contains('dark') || document.body.classList.contains('dark')) ? 'dark' : 'light';
}
function syncTheme() {
iframe.contentWindow?.postMessage({
type: 'thelogos-interactive-theme',
theme: currentTheme()
}, window.location.origin);
}
window.addEventListener('message', function (event) {
if (event.origin !== window.location.origin || event.source !== iframe.contentWindow || event.data?.type !== 'thelogos-interactive-height') return;
const nextHeight = Math.max(680, Math.ceil(Number(event.data.height) || 0));
iframe.style.height = nextHeight + 'px';
});
iframe.addEventListener('load', syncTheme);
const observer = new MutationObserver(syncTheme);
observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });
observer.observe(document.body, { attributes: true, attributeFilter: ['class'] });
syncTheme();
}());</script><h2 id="1-요약-executive-summary">1. 요약 (Executive Summary)</h2><p>텐서(Tensor)를 가장 짧게 말하면 &ldquo;좌표계가 바뀌어도 같은 대상을 표현할 수 있는 계산의 언어"다. 컴퓨터 과학에서는 텐서를 다차원 배열로 설명하는 경우가 많다. 이미지 배치는<code>batch x height x width x channel</code> 모양의 4차원 텐서이고, 언어 모델의 은닉 상태는<code>batch x sequence x hidden</code> 모양의 텐서다.</p><p>하지만 수학과 물리학에서 텐서는 단순한 배열보다 더 엄격한 개념이다. 숫자의 묶음만 있으면 텐서가 되는 것이 아니라, 좌표계를 바꿀 때 그 숫자들이 어떻게 변해야 같은 기하학적 대상을 계속 가리키는지가 정해져 있어야 한다.</p><p>따라서 텐서는 두 층위에서 이해해야 한다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>컴퓨터 과학의 텐서: 다차원 숫자 배열</span></span><span style="display:flex;"><span>수학/물리학의 텐서: 좌표 변환 규칙을 가진 기하학적 객체</span></span></code></pre></div><p>두 정의는 서로 충돌하지 않는다. 딥러닝 프레임워크는 계산 가능한 배열로서의 텐서를 다루고, 상대성이론은 좌표계와 무관한 물리 법칙의 언어로서 텐서를 다룬다. 공통 기반은 선형대수와 다차원 구조다.</p><h2 id="2-텐서의-차원-스칼라에서-고차원-배열까지">2. 텐서의 차원: 스칼라에서 고차원 배열까지</h2><p>텐서는 차수 또는 order에 따라 다음처럼 이해할 수 있다. 여기서 말하는 rank는 머신러닝 문맥의 축 개수에 가깝다. 선형대수에서 말하는 행렬의 rank와는 다른 의미로 쓰일 수 있으므로 구분해야 한다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>Rank-0 tensor: 스칼라</span></span><span style="display:flex;"><span>예: 온도, 질량, 에너지처럼 하나의 값으로 표현되는 양</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>Rank-1 tensor: 벡터</span></span><span style="display:flex;"><span>예: 속도, 힘, 변위처럼 크기와 방향을 가진 양</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>Rank-2 tensor: 행렬</span></span><span style="display:flex;"><span>예: 응력 텐서, 관성 텐서, 선형 변환, 이미지의 2차원 픽셀 배열</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>Rank-n tensor: 고차원 텐서</span></span><span style="display:flex;"><span>예: 영상 데이터, 언어 모델의 attention score, 시뮬레이션 격자의 물리장</span></span></code></pre></div><p>스칼라는 관찰자가 어떤 좌표계를 쓰더라도 같은 값으로 남는다. 벡터는 성분 값이 바뀔 수 있지만 실제 화살표의 방향과 크기는 유지된다. 행렬과 고차원 텐서는 더 복잡한 방식으로 성분이 바뀌지만, 올바른 변환 규칙을 따르면 같은 물리적 또는 기하학적 대상을 표현한다.</p><p>이 차이가 중요하다. 배열은 메모리 안의 숫자 배치이고, 텐서는 그 숫자가 무엇을 의미하는지까지 포함한다.</p><h2 id="3-좌표-독립성-성분은-바뀌지만-대상은-남는다">3. 좌표 독립성: 성분은 바뀌지만 대상은 남는다</h2><p>어떤 사람이 북동쪽으로 10m 걸었다고 하자. 동쪽과 북쪽을 축으로 잡으면 이 이동은 대략<code>(7.07, 7.07)</code>로 표현된다. 하지만 축을 45도 돌려서 하나의 축을 북동쪽으로 잡으면 같은 이동은<code>(10, 0)</code>처럼 표현될 수 있다.</p><p>숫자는 달라졌다. 그러나 실제 이동은 달라지지 않았다.</p><p>텐서의 핵심은 여기에 있다. 물리 법칙은 관찰자가 어떤 좌표계를 쓰느냐에 따라 달라져서는 안 된다. 좌표계가 바뀌면 성분은 바뀌어야 한다. 오히려 성분이 올바르게 바뀌기 때문에 실제 대상은 변하지 않는다.</p><p>벡터 성분은 좌표 변환에 따라 다음처럼 바뀐다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>V'ᵢ = 변환행렬의 성분 x Vⱼ</span></span></code></pre></div><p>2차 텐서는 축이 두 개 붙어 있으므로 더 복잡하게 바뀐다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>T'ᵢⱼ = 한쪽 축의 변환 x 다른 축의 변환 x Tₖₗ</span></span></code></pre></div><p>중요한 것은 식의 모양 자체가 아니라 관점이다.</p><blockquote><p>텐서는 &ldquo;성분의 목록"이 아니라 &ldquo;좌표계가 바뀔 때 성분이 어떻게 바뀌어야 하는지까지 포함한 대상"이다.</p></blockquote><p>그래서 텐서는 물리학에서 강력하다. 힘, 운동량, 전자기장, 응력, 곡률, 에너지-운동량처럼 관찰자의 기준에 따라 성분은 달라져도 물리적 실재는 보존되어야 하는 대상을 표현할 수 있기 때문이다.</p><h2 id="4-고전-미적분의-한계와-텐서-미적분학">4. 고전 미적분의 한계와 텐서 미적분학</h2><p>뉴턴과 라이프니츠의 고전 미적분학은 유클리드 공간에서 매우 강력하다. 직선 좌표계, 고정된 기준축, 평평한 공간에서는 함수의 변화율을 편미분으로 계산하면 된다.</p><p>문제는 공간 자체가 휘어지거나, 좌표계가 위치마다 달라지는 경우다. 예를 들어 지구 표면의 위도와 경도는 평면 좌표처럼 보이지만 실제로는 구면 위의 좌표다. 같은 &ldquo;동쪽 방향&rdquo; 벡터도 위치가 달라지면 기준 방향이 함께 바뀐다.</p><p>이때 벡터 성분을 단순히 편미분하면 두 가지 변화가 섞인다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>1. 실제 물리량이 변한 것</span></span><span style="display:flex;"><span>2. 좌표계의 기준축 자체가 변한 것</span></span></code></pre></div><p>텐서 미적분학은 이 둘을 분리하기 위해 공변 미분(Covariant Derivative)을 사용한다. 벡터장<code>V</code>에 대한 공변 미분은 개념적으로 다음과 같다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>∇_μ V^ν = ∂_μ V^ν + Γ^ν_{μλ} V^λ</span></span></code></pre></div><p>여기서<code>∂_μ V^ν</code>는 성분의 일반적인 변화율이고,<code>Γ^ν_{μλ}</code>는 좌표계 또는 공간의 기하가 바뀌는 효과를 보정하는 항이다. 이 보정항 덕분에 결과가 다시 텐서처럼 변환된다.</p><p>일반상대성이론은 바로 이 언어 위에 세워져 있다. 질량과 에너지는 시공간을 휘게 만들고, 그 휘어진 시공간 안에서 물체는 가능한 한 곧은 경로를 따라 움직인다. 이때 &ldquo;휘어짐"은 곡률 텐서로, &ldquo;질량과 에너지의 분포"는 에너지-운동량 텐서로 표현된다.</p><p>아인슈타인 방정식은 이 관계를 하나의 텐서 방정식으로 압축한다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>G_μν = (8πG / c⁴) T_μν</span></span></code></pre></div><p>왼쪽은 시공간의 기하, 오른쪽은 물질과 에너지다. 양쪽 모두 텐서이기 때문에 좌표계를 바꿔도 법칙의 구조가 유지된다.</p><h2 id="5-스텐실-계산-미분을-격자-위의-이웃-계산으로-바꾸기">5. 스텐실 계산: 미분을 격자 위의 이웃 계산으로 바꾸기</h2><p>컴퓨터는 연속적인 공간을 그대로 계산하지 못한다. 미분방정식은 무한히 작은 변화량을 다루지만, 컴퓨터 메모리에는 유한한 숫자만 저장할 수 있다. 그래서 연속 공간을 격자(Grid)로 나누고, 각 격자점의 값으로 미분을 근사한다.</p><p>스텐실(Stencil)은 이때 사용하는 이웃 점의 패턴이다.</p><p>1차원 함수<code>f(x)</code>의 두 번째 미분을 생각해 보자. 격자 간격을<code>Δx</code>라고 하면 가장 기본적인 3점 스텐실은 다음과 같다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>f''(xᵢ) ≈ (fᵢ₊₁ - 2fᵢ + fᵢ₋₁) / Δx²</span></span></code></pre></div><p>이 공식은 임의로 만든 것이 아니다.<code>xᵢ</code> 주변에서<code>fᵢ₊₁</code>과<code>fᵢ₋₁</code>을 테일러 급수로 펼치면 1차 미분 항이 서로 상쇄되고, 2차 미분 항이 남는다.</p><p>2차원 격자에서 라플라시안은 흔히 5점 스텐실로 근사한다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>∇²uᵢⱼ ≈ (uᵢ₊₁,ⱼ + uᵢ₋₁,ⱼ + uᵢ,ⱼ₊₁ + uᵢ,ⱼ₋₁ - 4uᵢⱼ) / h²</span></span></code></pre></div><p>중앙 격자점과 상하좌우 이웃만 보고 곡률 또는 확산의 정도를 계산하는 셈이다.</p><p>이 방식은 열 방정식, 파동 방정식, 유체 시뮬레이션, 이미지 처리, 전자기장 계산에서 반복적으로 등장한다. 연속 세계의 미분이 컴퓨터 안에서는 &ldquo;주변 값을 어떤 가중치로 더할 것인가"라는 국소적 배열 연산으로 바뀐다.</p><h2 id="6-텐서와-스텐실은-어디서-만나는가">6. 텐서와 스텐실은 어디서 만나는가</h2><p>스텐실 계산 자체는 단순한 배열 연산처럼 보인다. 하지만 실제 시뮬레이션에서는 격자 위에 올라간 값이 스칼라일 수도, 벡터일 수도, 텐서일 수도 있다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>온도장: 각 격자점에 스칼라가 있음</span></span><span style="display:flex;"><span>속도장: 각 격자점에 벡터가 있음</span></span><span style="display:flex;"><span>응력장: 각 격자점에 2차 텐서가 있음</span></span><span style="display:flex;"><span>시공간 곡률: 각 점에 더 높은 차수의 텐서가 있음</span></span></code></pre></div><p>평평한 격자에서는 각 성분에 같은 스텐실을 적용해도 충분한 경우가 많다. 그러나 곡면 좌표, 비균일 격자, 일반상대론적 시뮬레이션처럼 좌표계의 기하가 중요한 경우에는 단순한 성분별 차분만으로는 부족하다. 공변 미분, 메트릭 텐서, 연결 계수 같은 정보가 함께 들어가야 한다.</p><p>즉 스텐실은 계산 방법이고, 텐서 미적분학은 그 계산이 어떤 기하학적 의미를 가져야 하는지 알려주는 언어다.</p><p>이 관점에서 보면 많은 고성능 계산은 다음 과정을 따른다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>연속 방정식</span></span><span style="display:flex;"><span>-> 텐서 또는 벡터 형태로 좌표 독립적 표현</span></span><span style="display:flex;"><span>-> 격자와 스텐실로 이산화</span></span><span style="display:flex;"><span>-> 희소 행렬, 컨볼루션, GPU 커널로 실행</span></span></code></pre></div><p>딥러닝의 컨볼루션도 이와 닮아 있다. 주변 픽셀을 정해진 패턴으로 읽고 가중합을 만든다는 점에서, 스텐실과 컨볼루션은 모두 &ldquo;국소 이웃 계산"의 가족에 속한다.</p><h2 id="7-tensorflow와-tensor-core-현대-컴퓨팅의-텐서">7. TensorFlow와 Tensor Core: 현대 컴퓨팅의 텐서</h2><p>현대 AI에서 텐서는 더 실용적인 의미로 쓰인다. TensorFlow에서 텐서는 같은 자료형을 가진 다차원 배열이다. 모델의 입력, 가중치, 활성값, 그래디언트가 모두 텐서로 흐른다. 그래서 이름도 TensorFlow다. 텐서들이 계산 그래프를 따라 흐른다는 뜻이다.</p><p>예를 들어 이미지 분류 모델에서는 다음과 같은 텐서들이 계속 만들어진다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>입력 이미지: batch x height x width x channels</span></span><span style="display:flex;"><span>컨볼루션 가중치: kernel_height x kernel_width x in_channels x out_channels</span></span><span style="display:flex;"><span>은닉 활성값: batch x feature_height x feature_width x channels</span></span><span style="display:flex;"><span>분류 logits: batch x class_count</span></span></code></pre></div><p>대규모 언어 모델에서도 구조는 비슷하다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>토큰 임베딩: batch x sequence x hidden</span></span><span style="display:flex;"><span>어텐션 점수: batch x heads x sequence x sequence</span></span><span style="display:flex;"><span>FFN 가중치: hidden x intermediate</span></span><span style="display:flex;"><span>출력 logits: batch x sequence x vocabulary</span></span></code></pre></div><p>이 연산의 중심에는 행렬 곱셈이 있다. Transformer의 attention, MLP, projection layer는 대부분 큰 행렬 곱과 누적 연산으로 환원된다.</p><p>NVIDIA의 Tensor Core는 이 병목을 하드웨어 수준에서 빠르게 처리하기 위한 장치다. 핵심 연산은 행렬 곱셈과 누적이다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>D = A x B + C</span></span></code></pre></div><p>딥러닝 학습과 추론에서는 이 형태의 연산이 엄청난 횟수로 반복된다. Tensor Core는 FP16, BF16, TF32, FP8 같은 다양한 정밀도 조합을 활용해 일반적인 CUDA core보다 훨씬 높은 처리량을 낼 수 있다. 그래서 현대 AI의 속도 향상은 알고리즘만이 아니라 텐서 연산을 물리적으로 얼마나 빠르게 밀어 넣을 수 있는가와도 연결된다.</p><h2 id="8-같은-단어-세-가지-의미">8. 같은 단어, 세 가지 의미</h2><p>&ldquo;텐서"라는 단어가 헷갈리는 이유는 분야마다 강조점이 다르기 때문이다.</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>수학의 텐서:</span></span><span style="display:flex;"><span>다중선형 사상과 좌표 변환 규칙을 가진 객체</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>물리학의 텐서:</span></span><span style="display:flex;"><span>좌표계와 무관하게 물리 법칙을 표현하는 언어</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>컴퓨터 과학의 텐서:</span></span><span style="display:flex;"><span>다차원 배열과 그 위에서 수행되는 벡터화된 연산</span></span></code></pre></div><p>머신러닝에서<code>torch.Tensor</code> 또는<code>tf.Tensor</code>라고 부르는 값이 항상 수학적으로 엄밀한 텐서라는 뜻은 아니다. 대부분은 다차원 배열이다. 하지만 이름이 완전히 우연인 것도 아니다. 딥러닝은 고차원 배열을 선형대수 연산으로 계속 변환하는 계산 체계이고, 그 뿌리는 텐서가 다루는 다차원 구조와 맞닿아 있다.</p><p>따라서 가장 실용적인 구분은 다음이다.</p><blockquote><p>물리학자는 &ldquo;좌표계가 바뀌어도 법칙이 유지되는가"를 묻고, 엔지니어는 &ldquo;이 다차원 배열 연산을 얼마나 빠르고 안정적으로 계산할 수 있는가"를 묻는다.</p></blockquote><h2 id="9-한계와-주의점">9. 한계와 주의점</h2><p>텐서를 단순히 &ldquo;차원이 많은 배열"로만 이해하면 중요한 부분을 놓친다. 좌표 변환 규칙이 없다면 수학적 의미의 텐서라고 보기 어렵다. 반대로 물리학적 텐서 개념을 딥러닝 텐서에 그대로 적용하면 불필요하게 복잡해진다. 두 문맥을 구분해야 한다.</p><p>스텐실 계산도 마찬가지다. 간단한 3점, 5점 스텐실은 직관적이지만 항상 정확한 것은 아니다. 격자 간격이 너무 크면 절단 오차가 커지고, 시간 간격이 안정성 조건을 넘으면 수치해가 폭주할 수 있다. 경계 조건을 잘못 넣으면 내부 계산이 아무리 좋아도 전체 해가 틀어진다.</p><p>Tensor Core 역시 &ldquo;AI 전용 지능 장치"가 아니다. 그것은 대규모 행렬 곱셈과 누적 연산을 빠르게 수행하는 특수 하드웨어다. 모델이 더 똑똑해지는 이유는 하드웨어가 생각하기 때문이 아니라, 거대한 텐서 연산을 현실적인 시간 안에 수행할 수 있게 되었기 때문이다.</p><h2 id="10-결론">10. 결론</h2><p>텐서는 하나의 단어지만 세 세계를 잇는다. 수학에서는 좌표계가 바뀌어도 남는 구조를 표현하고, 물리학에서는 휘어진 시공간과 물리 법칙을 같은 언어로 묶으며, 컴퓨터 과학에서는 고차원 데이터를 빠르게 계산하는 배열 구조가 된다.</p><p>스텐실 계산은 이 연속적인 수학을 컴퓨터가 실행할 수 있는 격자 연산으로 바꾸는 방법이다. 공변 미분이 &ldquo;휘어진 공간에서도 올바른 변화율은 무엇인가"를 묻는다면, 스텐실은 &ldquo;그 변화율을 유한한 이웃 점만으로 어떻게 근사할 것인가"를 묻는다.</p><p>결국 텐서가 던지는 핵심 질문은 이것이다.</p><blockquote><p>&ldquo;기준이 바뀌어도 변하지 않는 구조는 무엇인가?&rdquo;</p></blockquote><p>이 질문은 일반상대성이론의 시공간에도, 수치해석의 격자에도, 딥러닝의 거대한 행렬 곱셈에도 그대로 남아 있다.</p><h2 id="참고자료">참고자료</h2><ul><li>MIT, &ldquo;Introduction to Tensor Calculus for General Relativity&rdquo;, 확인일: 2026-06-26,<a href="https://web.mit.edu/edbert/GR/gr1.pdf">https://web.mit.edu/edbert/GR/gr1.pdf</a></li><li>MIT OpenCourseWare, &ldquo;Lecture 1: Taylor series and finite differences&rdquo;, 확인일: 2026-06-26,<a href="https://ocw.mit.edu/courses/12-950-atmospheric-and-oceanic-modeling-spring-2004/507424ba4dc53db72128cae0d5231e80_lec1.pdf">https://ocw.mit.edu/courses/12-950-atmospheric-and-oceanic-modeling-spring-2004/507424ba4dc53db72128cae0d5231e80_lec1.pdf</a></li><li>TensorFlow, &ldquo;Introduction to Tensors&rdquo;, 확인일: 2026-06-26,<a href="https://www.tensorflow.org/guide/tensor">https://www.tensorflow.org/guide/tensor</a></li><li>NVIDIA Docs, &ldquo;Matrix Multiplication Background User&rsquo;s Guide&rdquo;, 확인일: 2026-06-26,<a href="https://docs.nvidia.com/deeplearning/performance/dl-performance-matrix-multiplication/index.html">https://docs.nvidia.com/deeplearning/performance/dl-performance-matrix-multiplication/index.html</a></li><li>NVIDIA Technical Blog, &ldquo;Programming Tensor Cores in CUDA 9&rdquo;, 확인일: 2026-06-26,<a href="https://developer.nvidia.com/blog/programming-tensor-cores-cuda-9/">https://developer.nvidia.com/blog/programming-tensor-cores-cuda-9/</a></li></ul>
]]></content:encoded></item></channel></rss>