SIMD 코드 작성이 가능한 엔진을 사용 중이며 빨리 수행됩니다. 그러나 모든 코드가있는 블록은 하나뿐입니다.이 경우 SIMD는 어떻게 작동합니까?
이 코드는 각 엔티티에서 동시에 독립적으로 실행되지만 1 가지만 변경되는 경우 관계없이 계산하는 것이 더 빠릅니까? 이것은 SIMD, 병렬 처리에 대한 아이디어입니까? 예를 들어
:이 경우
void simdFunction()
{
center = mesh.center(); // always the same
vert.pos.x = center.x; // run on each vertex
}
이 센터는 항상 같은, 그래서 그것은 SIMD의 각 정점으로 계산됩니다? 그렇다면 여전히 효율적인가?
기본적으로 병렬로 실행할 수 있습니까? 일반적인 SIMD 프로그래밍의 의미와 상관없이 계산 비용이 중요합니다.
감사합니다. Ben, 나는 그것을 더 잘 이해하는 것 같습니다. 그러나 나는 이것에 대한 통제권이 없다. 엔진의 스펙은 하나의 SIMD 컨텍스트 만 가질 수 있다고 정의합니다. 다른 함수 등을 작성할 수 있지만 주 컨텍스트에서 호출하자 마자 같은 일이 일어납니다. 그래서 나는 선택의 여지가 없다고 생각한다. –