전체 글100 pytorch 설치 방법 pytorch란? pytorch는 기존에 딥러닝과 관련된 오픈소스 라이브러리이다. 기존에 torch가 있던 것을 python을 이용해 좀 더 쉽게 사용가능하도록 다시 만든 것을 pytorch로 명칭했다. pytorch 사용 이유 python을 기반으로 하고 있어 코드를 익히거나 구현하는데 좀 더 쉽다는 평이 있다. GPU를 이용한 tensor 계산으로 성능적으로도 우수한 측면이 있다. pytorch 설치하기 설치방법도 매우 간단하다. 아래 사이트에 접속하면 UI로 사용자들이 어떤 환경에서 pytorch를 사용하는지 조합을 선택할 수 있고 그에 맞는 명령어를 제공해 준다. https://pytorch.org/ 머신러닝, 딥러닝 관련 개발자들은 conda를 많이 사용할텐데 파이썬 패키지 다운로드를 위해서 p.. 2023. 3. 12. EMC++ Item 40: Use std::atomic for concurrency, volatile for special memory. volatile 은 동시적 프로그래밍과 무관하기 때문에 동시성에는 std::atomic을 사용해야 한다. std::atomic 다른 스레드들이 반드시 원자적으로 인식하는 연산을 제공한다. 이에 대한 연산은 마치 뮤텍스로 보호되는 critical section 안에서 수행되는 것처럼 작동한다. std::atomic ai(0); // initialize ai to 0 ai = 10; // atomically set ai to 10 std::cout 2022. 10. 23. EMC++ Item 39: Consider void futures for one-shot event communication. 스레드간 통신을 처리하는 가장 나은 방법은 무엇일까? 조건 변수(Condition variable) 기반 설계 detecting task : 조건을 검출하는 과제. 사건이 발생하면 그 조건 변수를 통지한다. reacting task : 조건에 반응하는 과제. 하나의 조건 변수를 기다린다. std::condition_variable cv; // condvar for event std::mutex m; // mutex for use with cv … // detect event cv.notify_one(); // tell reacting task … // prepare to react { // open critical section std::unique_lock lk(m); // lock mutex cv.w.. 2022. 10. 23. EMC++ Item 38: Be aware of varying thread handle destructor behavior. 시스템 스레드에 대한 Handle std::thread future object 2개의 소멸자들은 행동 방식에 있어서 차이가 있다. - std::thread를 파괴하면 프로그램이 종료. future 객체는 종료되어도 프로그램이 종료되지는 않음. Callee 의 결과가 저장되는 곳 : shared state 미래 객체 소멸자 행동을 그 미래 객체와 연관된 공유 상태가 결정한다는 점에서 공유 상태는 중요하다. std::async를 통해서 시동된 지연되지 않은 과제에 대한 공유 상태를 참조하는 마지막 미래 객체의 소멸자는 과제가 완료될 때까지 차단된다. 다른 모든 미래 객체의 소멸자는 그냥 해당 미래 객체를 파괴한다. 미래 객체의 정상행동 미래 객체에 대해서는 소멸자가 바탕 스레드를 그 무엇과도 합류(join.. 2022. 10. 23. EMC++ Item 36: Specify std::launch::async if asynchronicity is essential. std::async 를 호출하는 경우는 비동기적으로 실행하는 상황에서 많이 쓰이지만 항상 그런 의미를 가지는 것은 아니다. std:;async 호출은 함수를 어떤 launch policy 에 따라 실행한다는 좀 더 일반적인 의미를 가진다. C++표준이 제공하는 launch policy std::launch::async 시동 방침을 지정하면 f는 반드시 비동기적으로, 다시 말해 다른 스레드에서 실행한다. std::launch::deferred 시동 방침을 지정하면 f는 std::async가 돌려준 std::future 객체에 대해 get이나 wait가 호출될 때에만 실행될 수 있다. 즉, f는 그러한 호출이 일어날 때까지 지연된다.(deferred) get이나 wait이 호출되면 f는 동기적으로 실행된다... 2022. 10. 23. 이전 1 2 3 4 ··· 20 다음