Toto Haryanto

This is my personal weblog…

Archive for the 'Ilmu Komputer' Category

Sekelumit tentang computer science

Tutorial Flask #1

Posted by totoharyanto on 1st Januari 2020

Bagi Anda pengguna python dan hendal membuat aplikasi yang dijalankan pada web browser, tidak perlu khawatir. Ada package dari python yang dikenal dengan flask. Nah, kita akan coba dari Nol ya.

Untuk dapat menjalankan package tersebut beberapa yang harus diintall adalah:
1. python
2. virtual environment (pakai virtualenv)
3. Membuet Folder microblog
4. Setting flask
=======================================================
1. Instalasi python. (saya anggap ini sudah bisa ya )

$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> _

2. virtual environment (pakai virtualenv)
seperti biasa : ketik

   $ sudo apt get install virtualenv

Setelah vrtualenv terinstall, kita masuk ke mode virtualenv

 $ source venv/bin/activate
(venv) $ _

Berikutnya dalah membuat folder website kita. Catatan. Kita beri nama microblog

 $ mkdir microblog
(venv) $ _

Setelah folder microblog dibuat, silahkan membut folder dalam microblog yang bernama app

 $ mkdir app
(venv) $ _

Dengan demikian, struktur direktorinya adalah sbb

microblog/
  venv/
  app/
    __init__.py
    routes.py
  microblog.py

Siapkan tiga file sbb.
__init__.py

from flask import Flask

app = Flask(__name__)

from app import routes

routes.py

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hello, World. This is my first web supported by Python"

microblog.py

from app import app

Masuk ke folder app

$ export FLASK_APP=microblog.py

Lalu jalankan flask run

$ flask run
(venv) toto@toto-K42F:~/microblog/app$ flask run
 * Serving Flask app "microblog.py"
 * Environment: production
 WARNING: This is a development server. Do not use it in a production deployment.
 Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [01/Jan/2020 01:04:17] "GET /index HTTP/1.1" 200 -
127.0.0.1 - - [01/Jan/2020 01:04:18] "GET /favicon.ico HTTP/1.1" 404 -

Buka browser Anda
Pada browser ketik : http://localhost:5000/index

Selamat Mencoba

Posted in Bahasa Pemrograman | No Comments »

NVIDIA Deep Learning via GPU

Posted by totoharyanto on 26th Desember 2019

Berikut Video NVIDIA deep learning using GPU
Selamat Menyimak

Posted in GPU | No Comments »

Pemrograman GPU dan Python

Posted by totoharyanto on 26th Desember 2019

Selama ini, untuk bisa mengakes GPU umumnya menggunakan bahasa C/C++, namun saat ini bahasa pemrograman Python pun bisa langsung mengakses GPU lho. Namun kita butuh melakukan instalasi library numba terlebih dahulu seperti yang sudah saya jelaskan pada tulisan sebelumnya.

Nah, pada kesempatan kali ini saya akan mencontohkan program sederhana yang dilakukan oleh CPU dan GPU.
Selamat menyimak.

Program
#simple.py

import numpy as np
from timeit import default_timer as timer


def VectorAdd(a,b,c):
for i in range(a.size):
c[i] = a[i] + b[i]

def main():
N = 32000000

A = np.ones(N,dtype=np.float32)
B = np.ones(N,dtype=np.float32)
C = np.zeros(N,dtype=np.float32)

start = timer()
VectorAdd(A,B,C)
vectoradd_time = timer() - start

print("C[:5] = " + str(C[:5]))
print("C[-5:]= " + str(C[-5:]))


print("VectorAdd took %f seconds" % vectoradd_time)


if __name__ == '__main__':
main()


Hasil ketika kita jalankan

screenshot-from-2018-10-06-12-11-27

 

 

Berikutnya kita adakan melakukan modifikasi pada program tersebut.
Perhatikan penambahan berikut:
1. library numba dengan meng-import vectorize
2. Assignment kernel ke cuda
2. modifikasi fungsi VectorAdd menjadi hanya dua argumen VectorAdd(a,b)
3. pemanggilan fungsi VectorAdd menjado C = VectorAdd(a,b)

#simple_gpu.py
import numpy as np
from timeit import default_timer as timer
from numba import vectorize


@vectorize(["float32(float32,float32)"],target = 'cuda')
def VectorAdd(a,b):
        return a + b

def main():
        N = 32000000

        A = np.ones(N,dtype=np.float32)
        B = np.ones(N,dtype=np.float32)
        C = np.zeros(N,dtype=np.float32)

        start = timer()
        C = VectorAdd(A,B)
        vectoradd_time = timer() - start

        print("C[:5] = " + str(C[:5]))
        print("C[-5:]= " + str(C[-5:]))


        print("VectorAdd took %f seconds" % vectoradd_time)


if __name__ == '__main__':
        main()

Setelah kita jalankan, berikut adalah hasilnya:

simple_gpu

 

 

Dapat kita lihat perbandingan waktu anatara CPU dan GPU. Dengan CPU penjumlahan vector membutuhkan waktu 8.26 detik, sementara dengan GPU hanya membutuhkan waktu 0.99 detik.

Melihat Profil

Kemudian jika kita hendak memastikan bahwa komputasi berjalan di GPU lakukan perintah berikut untuk melihat bagaimana profil dari GPU saat dijalankan..

simple_gpu

Posted in GPU | No Comments »

Cuda with Python

Posted by totoharyanto on 30th Oktober 2018

Posted in GPU | No Comments »