2014-12-18 2 views
1

큰 숫자 배열로 계산할 때 Accelerate 프레임 워크보다 Metal이 빠르다고 주장하는 article이 있습니다.64 비트 숫자 크런치에 금속 사용

Metal의 셰이더 언어 문서를보고 나면 배정도 부동 소수점 또는 64 비트 정수 배열을 지원하지 않는다는 것을 깨달았습니다. 나는 무엇인가 내려다보고 있냐? 나는 메탈이 64 비트 A7 프로세서 용으로 설계된 것이라고 생각했다.

+0

64 비트 A7 사용에는 배정도 부동 소수점 또는 64 비트 정수 배열이 필요합니까? –

+0

@RobertHarvey : 64 비트 산술을 수행 할 수있는 프로세서가있는 셰이더 언어는 지원하지 않습니다. 나는 내가 뭔가를 간과했는지 궁금했다. 그것이 호언 장담처럼 들리는 경우에 미안; 그것은 하나가되는 것이 아닙니다. – Eduardo

+0

64 비트가 항상 64 비트 종단 간을 의미하지는 않습니다. 프로세서는 내부적으로 64 비트가 될 수 있지만 계속해서 작은 숫자를 사용합니다. 그것은 항상 발생합니다. 나는 쉐이더에 관해서는 절대적으로 아무것도 모르지만, 당신의 최종 숫자가 가능한 가장 높은 픽셀 카운트와 컬러 카운트 사이의 해상도보다 높을 필요는 없다고 생각합니다. 컬러 카운트는 아마도 수십억 개가 아닌 쿼드 리언 수입니다. –

답변

2

A7의 CPU는 64 비트 정수 및 배정 밀도 부동 소수점을 지원합니다. GPU는 그렇지 않습니다. 금속 쉐이더는 CPU가 아닌 GPU에서 실행됩니다.

제쳐두고, 블로그 게시물의 벤치 마크는 매우 의심 스럽습니다. 그것은 극적으로 비효율적 인 방법으로 Accelerate를 사용합니다. Accelerate 인터페이스의 올바른 사용보다 잘 작성된 Metal이 더 빠를 가능성은 분명하지만 벤치 마크가 실제로 보여주는 것은 아닙니다.

+1

보다 효율적인 Accelerate 접근 방법은 어떻게 작성됩니까? 새로운 벤치 마크를 기꺼이 진행할 수 있습니다. (내가 언급 한 블로그 게시물을 썼다) –

관련 문제