라벨이 concurrency인 게시물 표시

Data dependence

Data dependence Flow Dependence(True dependence) Anti Dependence Output Dependence Flow Dependence(True dependence) 어떤코드 S1이 메모리 영역에 쓰고난 다음 어떤코드S2가 해당 위치를 읽음 S1과 S2는 동시에 실행하거나 순서를 바꿀수 없음 Anti Dependence 어떤코드 S1이 메모리 영역에서 읽고 , 그다음 어떤코드 S2가 해당 영역에 씀 S1과 S2는 동시에 실행하거나 순서를 바꿀수 없으나 S2코드를 수정하여 dependence를 제거할 수 있음 Output Dependence 어떤코드 S1이 메모리 영역에 쓰고, 그다음 어떤코드 S2가 해당 영역을 읽음 Anti Dependence와 마찬가지로 순서를 바꿀수 없으나 코드 수정으로 dependence 제거 가능 루프 캐리드 디펜던스(Loop-carried dependence) 루프 안에서 이전 이터레이션과 다음 이터레이션에 dependence가 존재 이터레이션들을 각각 동시에 실행 불가능 루프 인디펜던트 디펜던스(Loop-independent depecdence) 루프 안에 있으나 루프와 무관하게 루프안 코드들이 depecdence가 존재(Flow, anti, output 이 loop안에 있으면 loop-independent depecdence라고 하는것 같음)