2013-04-02 4 views
3

저는 Cython으로 첫 발걸음을 내딛고 있으며 성능을 더욱 향상시키는 방법을 궁금합니다. 지금까지 평소 (파이썬 전용) 실행 시간의 절반이되었지만, 더 많이 있어야한다고 생각합니다!Cython 성능을 향상시키는 방법은 무엇입니까?

나는 cython -a을 알고 있으며 이미 내 변수를 입력했습니다. 하지만 여전히 내 기능에는 노란색이 많이 있습니다. cython이 numpy를 인식하지 못하거나 내가 누락 된 다른 것이 있기 때문입니까?

답변

2

스칼라에서 np.sqrt 및 np.floor를 호출 할 때 libc의 수학 함수를 사용하면 도움이됩니다. 이것은 파이썬 호출 오버 헤드를 가지고있을뿐만 아니라 scalpy와 배열을위한 numpy ufuncs에 다른 코드 경로가 있습니다. 적어도 하나의 유형 전환이 필요합니다.

+0

아하 카이, 나는 이것에 대해 하루 전에 읽었습니다. – Sebastian

0

official tutorial으로 테스트 했으므로 모든 np. * 행에 노란색으로보고되고 코드와 동일한 비단뱀이 관련되어 있다고 생각합니다. 해당 페이지의 끝에

포인트 3이 설명해야 : NumPy와/SciPy 기능을 현재 파이썬 호출 오버 헤드가 호출

을; Cython에서 C로 곧바로 갈 수는 있습니다 (그러나이 라이브러리에 대한 약간의 변경 및 점진적인 변경이 필요합니다. 자세한 내용은 Cython 메일 링리스트로 메일 보내주십시오).

+0

아하, 내가 전에 알지 못했습니다! – Sebastian

관련 문제