2014-04-24 1 views
4

많은 리소스 온라인에서 '메모리', '대역폭'대기 시간이 지정된 커널의 다양한 용도를 찾을 수 있습니다. 저에게 저자는 때때로이 용어에 대한 자신의 정의를 사용하는 것으로 보이고 누군가가 명확한 구별을하는 것이 유익한 것이라면 저는 생각합니다.cuda '메모리 바인딩'vs '대기 시간 바인딩'vs '대역폭 바인딩'vs '계산 바인딩'

내 이해 : 대역폭 바운드 커널은 전역 메모리에 대한 액세스 측면에서 장치의 물리적 한계에 접근합니다. 예 : 응용 프로그램은 M2090 장치에서 177GB/s 중에서 170GB/s를 사용합니다.

레이턴시 바인딩 된 커널은 메모리 스틱으로 인한 스톨의 주된 원인입니다. 따라서 우리는 전역 메모리 버스를 포화 시키지는 않지만 커널에 데이터를 가져 오기 위해 기다려야합니다.

계산 된 바운드 커널은 커널에 메모리를 제공하는 데 문제가 없다는 가정하에 계산 시간이 지배적이며 산술과 대기 시간이 잘 겹쳐 있습니다.

이 내용이 정확하다면 '메모리 바운드'커널은 무엇이 될까요? 모호한 점이 있습니까? 그렇다면 위의 세 가지 조건으로 대화를 제한해야합니까?

감사합니다.

+0

자주 발생하는 또 다른 경우는 없습니까? pci-e 전송 속도로 제한됩니까? – hbogert

답변

4

'메모리 바운드'커널은 무엇이 될까요?

메모리 바인딩은 코드가 메모리 액세스에 의해 제한되는 일반적인 경우를 말합니다. 그것은 레이턴시 바인딩 된 코드와 대역폭 바인딩 된 코드를 포함합니다. 다른 모든 용어를 올바르게 정의했습니다.

모호한 점이 있습니까? 예인 경우 대화를 위의 3 가지 조건으로 제한해야합니까?

나는 모호함이 많습니다 (4 가지 조건 중 3 가지를 분명히 구분 해 놓았습니다). 그리고 당신은 SO 질문/답변에서 세계에 질서를 부여하지 않을 것입니다.

+0

설명해 주셔서 감사합니다. 나는 '멤 바인드 (mem bound)'의 모호함만을 의미했다. 건배 –

관련 문제