-
TFA의 결론이 맞다는 것은 확신하지만, 더 나은 버전만이 아닌 두 버전 모두의 코드 생성이 제공되면 주장이 강화될 것임
- "최적화된" 버전이 실제로 원래 버전보다 훨씬 느리게 실행된다는 점을 보여주기 위해 생성된 기계 코드를 보여주지만, 나쁜 버전이 더 나쁘다는 것을 증명하지는 않음
-
어떤 경우에 if가 실제 분기를 강제하는지 알 수 있는 좋은 방법이 있었으면 좋겠음
- 사람들이 더 비싼 mix/lerps를 사용하는 이유는 작은 오버헤드가 있을 수 있지만, 분기를 만드는 것이 두렵기 때문임
- v = x > y ? a : b;가 실제로 작동하는 것은 좋지만, if가 때로는 분기이고 때로는 아닌 구문이 있다는 것이 우려됨
-
이 기사도 관련 있음: GPU에서의 분기 작성에 대한 잘못된 조언을 바로잡음
- 과거에는 분기를 피하는 최적화가 효과적이었지만, 이제는 그렇게 하지 말아야 함
- 프로세서와 컴파일러가 변화하므로, 여러 변형을 제공하고 런타임에 가장 빠른 것을 선택하는 것이 좋음
-
컴파일러가 '최적화된' 버전이 동일하다는 것을 왜 인식하지 못하는지 궁금함
- step()을 이해하고 step()=0.0과 step()==1.0의 경우를 별도로 최적화할 수 있어야 함
-
이 문제에 걸린 적이 있음. Claude/ChatGPT도 이를 최적화로 제안하지만, 성능 저하를 초래함
-
OpenGL 함수가 GPU 기본 기능을 호출하는 대신 에뮬레이션되는지 어떻게 알 수 있는지 궁금함
-
코드 작성 시 조건부 분기가 없을 것이라는 확신을 가지기 위해 경험이 필요함
- 조건부 이후 몇 개의 연산이 분기를 유발하는지, 컴파일러가 어떤 연산을 생략할 수 있는지 알기 어려움
- 성능 테스트 수트를 사용하여 우발적인 성능 저하를 확인해야 하는지 고민됨
-
mix 함수의 변형이 벡터에 대해 작동하는 방법을 설명함