'luajit'에 해당되는 글 3건

  1. 2011.06.26 luajit 테스트 - (2)
  2. 2011.06.26 luajit 테스트 - (1)
  3. 2010.12.08 [luajit] LUA + JIT
정보기술2011. 6. 26. 14:07
 단순 비교.조건 분기 코드를 테스트해 보았다. 물론 리눅스/하드웨어 사양은 전과 동일했다. 테스트 반복 횟수는 5백만번이었다.

 local function cond1(a,b)
    if  ( a > b ) then
        return a
    else
        return b
    end
end

local function test_condition ()
    local max_repeat = 1000 * 1000 * 50
    local x = os.clock()
    local s = 0
    for i = 1 , max_repeat do
        s = cond1( 1, 2 )
    end
    print(string.format(
        "elapsed time: %.9f\tcount = %u\n",
            os.clock() - x ,
            max_repeat ) )
end

test_condition ()


 # lua t1.lua
elapsed time: 17.900000000    count = 50000000

# luajit -j on t1.lua
elapsed time: 0.080000000    count = 50000000


 인터프리터 방식과 jit 사용은 당연히 비교가 안되었으며, 약 200배 정도의 차이가 발생한 듯하다. 물론 c 나  pascal 등 으로 이를 개발하면 거의 0 초 수준이지만... 소스 코드에서 바로 작업한 수준이 이정도인건 훌륭하다!!

반응형
Posted by Jay Two
정보기술2011. 6. 26. 00:49

 

웹에 쓸만한 luajit 테스트 결과를 찾지 못해서 직접 테스트를 해보았다. 결론부터 이야기하자면, 결과는 매우 놀라웠으며 Mike Pall(독일 아저씨던데 사진은 못 구했음;)의 jit 엔진이 gnu lightning 이나, libjit 못지 않은 성능을 가지고 있음에도 놀랐다. (참고로 테스트 장비에서 gnu lightening의 incr 테스트는 10^9 반복시 820 밀리초가 소요되었다.)

향후, 기회가 되면 Dual/Quad 등의 멀티코어 테스트 시의 차이도 테스트해보았으면 하고, 루아 공식 지원이 아닌 lua-forgelua-socket 등도 테스트를 해보려고 한다. 그리고 llvm-lua 라는 프로젝트도 진행 중이던데 요건 아직 luajit 만큼은 진행도가 좋지 못하다.


             
 

luajit version 2.0 beta-5, Mike Pall

 
 

Lua SciMark 2010-12-10 based on SciMark 2.0a, Mike Pall

             
 

Linux : Ubuntu 11.04 32bit

     
             
 

CPU : Intel(R) Celeron(R) M processor 900MHz

 
 

Memory : 512 MB

       
             
 

FFT : Fast Fourier Transform

   
 

SOR : Jacobi Successive Over-Relaxation.

 
 

MC : Monte Carlo Integration.

   
 

SPARSE : Sparse Matrix Multiplication.

 
 

LU : Dense Matrix Factorization.

   
             
             

twat option : -small

       

  

FFT

SOR

MC

SPARSE

LU

SciMark

JIT-OFF

11.03

23.99

6.06

13.74

16.6

14.29

JIT-ON

71.96

301.09

46.77

57.49

177.78

131.02

             

test option : -large

       

  

FFT

SOR

MC

SPARSE

LU

SciMark

JIT-OFF

8.32

23.48

6.06

15.02

17.1

14

JIT-ON

24.7

292.54

46.77

72.73

141.24

115.6

             

vs. original scimark2

       

  

FFT

SOR

MC

SPARSE

LU

SciMark

C CODE

61.76

218.97

22.67

92.04

118.93

102.88

  

(N=1024)

(100 x 100)

 

(N=1000, nz=5000)

(M=100, N=100)

  

LUA JIT

24.7

292.54

46.77

72.73

141.24

115.6

(large)

[1048576]

[1000]

  

[100000, 1000000]

[1000]

  

LUA JIT

71.96

301.09

46.77

57.49

177.78

131.02

(small)

[1024]

[100]

  

[1000, 5000]

[100]

  

JIT-OFF

8.32

23.48

6.06

15.02

17.1

14

(large)

  

  

  

  

  

  

JIT-OFF

11.03

23.99

6.06

13.74

16.6

14.29

(small)

  

  

  

  

  

  

 


http://luajit.org/download/scimark.lua

http://math.nist.gov/scimark2/scimark2_1c.zip

반응형
Posted by Jay Two
정보기술2010. 12. 8. 22:19
 
luajit 는 루아의 기능에 JIT 컴파일 기능을 추가하려는 계획으로 구성된 Mike Pall 이 구성한 프로젝트이다. 기본 구성은 루아 코드를 사용하지만, 동적으로 루아 코드를 파싱하는 방안이 아닌 x86또는 x64에 호환 가능한 코드로 구성된 코드로 변환하여 실행하는 방안으로 되어있다. 즉, 일반 루아와는 다르게 성능의 차이가 크다. 세부 코드를 보면 x86/x64 계열에서 사용하는 어셈블리 사용하게 되어 있고, 이는 DynASM 이라는 네이티브 코드 생성 엔진을 사용하게 되어 있다.  이는 ocamlc/mono 등에서 사용하는 방안이기도 한데, 모든 CPU와 OS에서 적용할 수는 없으며 특정한 환경에서만 사용 가능하다.
 개인이 구성한 프로젝트로는 매우 훌륭한 컨셉의 프로젝트이고, 장기적으로 오픈 소스 조직 또는 비영리 단체가  인수하여 프로젝트의 활성화가 되기를 기원한다...
   
반응형
Posted by Jay Two