2017-12-01 26 views
1

numba 모듈을 사용하여 스크립트 속도를 높이려고합니다. 그러나 스크립트를 실행할 때마다 numba 클래스 중 일부를 컴파일합니다 (@jitclass 사용). 스크립트를 실행할 때마다 컴파일로 인해 시간이 많이 걸리는 것을 피하기 위해 변경되지 않는다는 것을 알고있는 클래스를 컴파일하는 것이 가능한지 궁금합니다. 나는 약 1 분 정도 걸리는 12 가지 수업에 numba을 사용합니다.스크립트를 실행하기 전에 numba로 코드를 컴파일 할 수 있습니까?

나는 코드를 미리 numba으로보고 있었지만 잘 이해하지 못한다고 생각합니다. link 그러나 내가 사용하는대로 jitclass을 사용할 수 없습니다.

답변

2

내가 알고있는 한 (현재 numba의 릴리스 : 0.36), jitclass (AOT)을 사용할 수 없습니다.

귀하의 질문에서 컴파일 시간이 얼마나 소요되었는지 확실하지 않습니다. 1 분은 극단적 인 것으로 보이지만 일반적으로 한 번에 몇 가지만 사용했습니다. jitclasses 필자는 많은 모듈에 걸쳐 수십 개의 내부 종속 함수를 사용했으며 소수의 컴파일 시간을 보지 못했습니다.

코드를 처음 실행하는 데 걸리는 시간과 이후의 시간을 비교할 수 있다면 런타임이 결정적이라고 가정 할 때 컴파일 시간이어야합니다.

Just-In-Time 컴파일을 시작하는 데 드는 비용이 실용적이지 않은 경우 가장 좋은 방법은 아마도 Cython을 사용하여 C-extensions을 작성하는 것입니다. 단점은 nopython 모드의 numba 코드에서 사용할 수 없다는 것입니다. 도움이 될 수있는 데이터 구조를 구성하는 데 더 좋은 방법이 많이 있지만 코드를 보지 않고도 말하기는 어렵습니다.

+0

너무 나쁨. numba를 사용하지 않으면 코드를 실행 한 후 내 윈도우가 열리지 만 numba를 사용하면 각 jitclass는 컴파일하는 데 약 6 초가 걸립니다. 그래서 창문이 열릴 때까지 잠깐 기다려야합니다. 지금은 창에 접근하기 위해 새 스레드에서 jitclass를 시작합니다. – ymmx