2024년 3월 7일 목요일

How to set cuBLAS on Windows machine

 How to set cuBLAS on Windows machine


**warning**

- DO NOT install many version of cuda toolkit.

- check cuda toolkit compatible for your device

  : https://www.wikiwand.com/en/CUDA#/GPUs_supported\

- MUST CHECK which dev environment you use. 

  *pipenv on vscode, use vscode terminal.

  *on anaconda, use anaconda terminal


**install**

1. install cuda toolkit => https://developer.nvidia.com/cuda-toolkit-archive

2. install visual studio with these options below

 - C++ core features

 - MSVC vxxx - VS 2022 C++ x64/x86 build tool

 - C++ CMake tools for Windows.

 - Windows 10/11 SDK.


**cuda version check**

 - nvcc --version 

   or 

 - nvidia-smi


**run old command shell as administrator, not in powershell**


1. clone llama-cpp-python

  git clone --recursive -j8 https://github.com/abetlen/llama-cpp-python.git


2. clone llama.cpp

  git clone https://github.com/ggerganov/llama.cpp


3. move "llama.cpp" folder into "llama-cpp-python/vendor/"


4. cd llama-cpp-python


5. run commands below

  mkdir build

  cd build

  cmake .. -DLLAMA_CUBLAS=ON

  cmake --build . --config Release


6. set environment values below

  set FORCE_CMAKE=1

  set CMAKE_ARGS=-DLLAMA_CUBLAS=ON


  * you can check the value you set with "echo %FORCE_CMAKE%"


7. run below command in llama-cpp-python folder

  python -m pip install -e . --force-reinstall --prefer-binary --no-cache-dir --extra-index-url=https://jllllll.github.io/llama-cpp-python-cuBLAS-wheels/AVX2/cu118


  ** check your cudatoolkit version and put it at the end of the command above.

 ex) cu120 or cu12.2 etc

2023년 10월 18일 수요일

How to download Datasets on google colab.

아주 잘 설명된 웹사이트

** 위 내용중 Competition이 아니라 Datasets 사이트에 접속하면 우측에 "..." 버튼 클릭 후 

Copy API command를 클릭하면 shell command가 버퍼에 복사됨.


** 자세히 읽어보면 kaggle.json 파일을 업로드하면 /root/ 디렉토리로 업로드 되는게 아니고 그 아래 명령어를 실행해야지만 해당 위치로 복사한다는 의미이니 일단 command를 무조건 따라 입력하여 실행하도록한다.

2023년 8월 6일 일요일

How to debug python source code with streamlit library in vscode

 in launch.json

"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"module": "streamlit",
"console": "integratedTerminal",
"justMyCode": true,
"cwd": "${fileDirname}",
"env": {"PYTHONPATH": "${workspaceFolder}${pathSeparator}${env:PYTHONPATH}"},
"args": [
"run",
"${file}",
"--server.fileWatcherType",
"none"
]
},
]

2023년 7월 31일 월요일

우분투 18.04 LTS 에서 기본 파이썬 버전 설정

우분투 기본 파이썬 버전은 3.6.1이다.

버전을 올리려면 apt로는 아무리해도 안된다. 꾸역꾸역 하다가 OS 망가져서 우분투 새로 설치함.

소스를 받아서 빌드를 하라고하는데 자칫하면 우분투 새로설치해야할지도 몰라 안함.


*** 아래에 따라 파이썬 버전 변경하면 터미널이 안열리게 됨.

sudo update-alternatives --config python3 # ==> 실행해서 원래버전으로 변경하면 실행됨



그냥 아나콘다가 설치해주는 상위버전(3.11)이 있으니 기본 파이썬 실행 위치를 설정하면 된다.


# anaconda 가 설치 되어 있어야한다.

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1

sudo update-alternatives --install /usr/bin/python3 python3 /home/hanson/anaconda3/bin/python3.11 2


# 아래 명령어 실행 하면 기본 파이썬 버전을 선택할 수 있다.

sudo update-alternatives --config python3


# 버전확인

python3 -V

2022년 9월 25일 일요일

Setting Korean fonts for Matplotlib on Ubuntu 18.04-LTS

** 참고사이트 : https://hooni-playground.com/961/

** 참고도서 : 파이썬을 활용한 금융공학 레시피

# 폰트설치

$ sudo apt-get install fonts-nanum*


# 캐시삭제

$ fc-cache -fv


# 주피터 노트북에서 확인

>>> import matplotlib

>>> matplotlib.__file__

'/home/xxxxxx/anaconda3/envs/quant/lib/python3.9/site-packages/matplotlib/pyplot.py'

# 위 '/site-pakages/' 이전 절대경로를 복사해서 아래 폰트 설치될 경로에 맞게 수정해서 명령어 실행.

$ cp /usr/share/fonts/truetype/nanum/Nanum* /home/xxxxxx/anaconda3/envs/quant/lib/python3.9/site-packages/matplotlib/mpl-data/fonts/ttf/


# Matplotlib 폰트 캐시 삭제

$ rm -rf ~/.cache/matplotlib/*


# 주피터 노트북 및 아나콘다 종료 후 재실행해야 설치한 폰트 목록이 출력됨.

>>> from matplotlib import font_manager

>>> set(sorted([f.name for f in font_manager.fontManager.ttflist]))


# Matplotlib에 폰트 설정.

>>> plt.rcParams['font.family'] = 'NanumGothicCoding'

>>> plt.rcParams['font.size'] = 12

>>> plt.rcParams['axes.unicode_minus'] = False

2022년 6월 19일 일요일

[VS Code on Ubuntu] To install Mono-dev

 sudo apt install gnupg ca-certificates

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68980A0EA10B4DE8

echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list

sudo apt update

sudo apt install mono-devel

UBuntu 18.04 LTS / NVIDIA 470 / CUDA 11.4 / cuDNN8.2.4

# 한 사이트 참고해서 환경 설정하기 힘들어서 내 환경에 맞게 짜깁기한 내용임.

# 참고 사이트는 아래에 있음.

# 설치

# NVIDIA 460, CUDA 11.2, cuDNN 8.1

https://webnautes.tistory.com/1428

https://velog.io/@cychoi74/%EC%9A%B0%EB%B6%84%ED%88%AC-18.04-NVIDIA-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%EC%84%A4%EC%B9%98

# NVIDIA 470, CUDA 11.4, cuDNN 8.2

https://lapina.tistory.com/m/131

# 삭제

https://settembre.tistory.com/447


# Blacklist 추가

# Ubuntu 그래픽 드라이버로 설치되는 Nouveau Driver와 충돌 할 수 있어서 로딩되지 않게 해야 함.

$ sudo nano /etc/modprobe.d/blacklist-nouveau.conf

(ctrl+o 저장, ctrl+'x 종료)

blacklist nouveau

options nouveau modeset=0


# 혹은 터미널 환경이면

$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf

# i키 누르고 아래 내용 입력

blacklist nouveau

options nouveau modeset=0

# esc키 ":wq" 입력 후 엔터


# 저장 후 재부팅

$ sudo update-initramfs -u

$ sudo reboot


# gdm 서비스 종료

$ service gdm status

$ service gdm stop


# DisplayManager 비활성화 및 활성화. 

# 첫번째 명령어 치면 커맨드 화면으로 가버림. 

# 당황하지 말고 두번째 명령어 치면 다시 돌아옴.

$ systemctl isolate multi-user.target

$ systemctl start graphical.target



# 그래픽카드 정보 확인

$ ubuntu-drivers devices

# 470에 cuda 11.4 설치해도 됨.



# APT로 설치하는 방법

repository 추가

$ sudo add-apt-repository ppa:graphics-drivers/ppa

$ sudo apt update



# 드라이버 설치

$ sudo apt-get install nvidia-driver-470

# cuda 11.4가 같이 설치되지만 /usr/local/ 에 보이지 않음. 수동으로 다시 설치.



# CUDA Toolkit 11.4 Update 4

$ wget https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda_11.4.4_470.82.01_linux.run

$ sudo sh cuda_11.4.4_470.82.01_linux.run


# 환경 추가

sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-11.4/bin' >> ~/.bashrc"

sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64' >> ~/.bashrc"

sudo sh -c "echo 'export CUDADIR=/usr/local/cuda-11.4' >> ~/.bashrc"

source ~/.bashrc


# 설치 확인

$ nvcc -V


# cuDNN 8.2.4

https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.2.4/11.4_20210831/cudnn-11.4-linux-x64-v8.2.4.15.tgz


$ tar xvzf cudnn-11.4-linux-x64-v8.2.4.15.tgz

$ cd cudnn-11.4-linux-x64-v8.2.4.15

sudo cp cuda/include/cudnn* /usr/local/cuda/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda-11.4/include/cudnn.h /usr/local/cuda/lib64/libcudnn*


# 링크 다시 걸어줌.

sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8;

sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.2.4  /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8;

sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.2.4  /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8;

sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.2.4  /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8;

sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.2.4  /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8;

sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8;

sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn.so.8.2.4  /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn.so.8


$ sudo ldconfig


여기서 Error메시지 발생한다면 아래 링크 통해 해결

https://lapina.tistory.com/130


$ ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn


# 아래와 같이 나와야 함.

libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.2.4

libcudnn_ops_train.so.8 -> libcudnn_ops_train.so.8.2.4

libcudnn_adv_train.so.8 -> libcudnn_adv_train.so.8.2.4

libcudnn.so.8 -> libcudnn.so.8.2.4

libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.2.4

libcudnn_cnn_train.so.8 -> libcudnn_cnn_train.so.8.2.4

libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.2.4


# anaconda3(python 3.9) 초기화 안될때

$ source ./anaconda3/bin/activate

# .bashrc에 초기화 스크립트 추가됨.

$ conda init


# 아나콘다 가상환경 실행안될 때

# 쉘에서 환경 생성할때 아래 오류 나오면 해당 경로 권한 변경


NoWritableEnvsDirError: No writeable envs directories configured.

  - /home/username/.conda/envs

  - /home/username/anaconda3/envs


$ chown -R username:username /home/username/.conda

$ chown -R username:username /home/username/anaconda3


# Nvidia driver 완전 삭제

$ sudo apt-get purge nvidia*

$ sudo apt-get autoremove

$ sudo apt-get autoclean


# CUDA 완전 삭제

$ sudo rm -rf /usr/local/cuda*

$ sudo apt-get --purge remove 'cuda*'

$ sudo apt-get autoremove --purge 'cuda*'


# 확인

$ sudo dpkg -l | grep nvidia

이때 아무것도 안나오면 다 삭제된것이고 아니라면

$ sudo apt-get remove --purge 지울이름.


마찬가지로 다음 명령어를 입력해본다.

$ sudo dpkg -l | grep cuda

이때 아무것도 안나오면 다 삭제된것이고 아니라면

$ sudo apt-get remove --purge 지울이름


# 아나콘다

https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh

2021년 11월 20일 토요일

Tweak Ubuntu 18.04 LTS

 #우분투 소프트웨어

gnome-tweak 검색 => "기능개선" 프로그램 설치


# 즐겨찾기 등록 프로그램

sudo apt install alacarte


# 아나콘다 가상환경 자동 실행 끄기

conda config --set auto_activate_base false


# 즐겨찾기 프로그램에서 아나콘다 아이콘 추가 위치

/home/abc/anaconda3/lib/python3.7/site-packages/anaconda_navigator/static/images/anaconda-icon-256x256.png

2021년 1월 15일 금요일

우분투(18.04) 로그인 키 모음 잠금 해제

1. 우분투 메뉴 좌측하단 "프로그램 표시"에서 "암호" 키워드로 앱을 검색


2. "암호 및 키"를 클릭


3. "기본 키 모음" 에서 마우스 우 클릭 후 나타나는 메뉴에서 "비밀번호 변경" 선택

4. 기본 키 모음 암호 입력(로그인 암호) 후 "계속"


5. 다음 신규 암호를 입력, 재입력 하는 화면에서 빈칸을 그대로 두고 "계속" 버튼 클릭하면 아래 화면 나타남.

6. 위 화면에서 "계속" 버튼 클릭

7. 재부팅하면 로그인할 때 "기본 키 모음 암호 입력"을 하지 않아도 된다.

** 검색해보니 "암호 및 키" 실행 후 "로그인"에서 우측 클릭해서 하라고도 되어있던데 그건 로그인에만 해당 하는듯하고 지금 같은 경우 구글 크롬이나 기타 앱에서 로그인 암호가 필요한 경우는 계속해서 팝업이 나타남. 필요 시 "로그인", "기본 키 모음"의 암호를 모두 빈 값으로 설정해야할 듯 함.



2021년 1월 14일 목요일

주피터 노트북 테마 상세 설정

pip install jupyterthemes

pip install --upgrade jupyterthemes

jt -t gruvboxd -T -N -kl -f roboto -fs 11 -tfs 11 -nfs 12 -tfs 12 -ofs 10 -cellw 90% -lineh 170 -cursc r -cursw 6

jt -t gruvboxd -fs 115 -nfs 125 -tfs 115 -dfs 115 -ofs 115 -cursc r -cellw 80% -lineh 115 -altmd  -kl -T -N

https://chancoding.tistory.com/48

우분투에서 아나콘다 삭제

https://big-blog.tistory.com/2295

주피터 노트북 작업 디렉토리 변경

https://m.blog.naver.com/pmw9440/221848755677

우분투 부팅 시 디스크 자동 마운트

https://m.blog.naver.com/watney0813/221017927194

No need to set up cuDNN and CUDA in your ubuntu os for data science environment because..

visit this site I give you below

https://anaconda.org/anaconda/tensorflow-gpu

and follow the command.

conda install -c anaconda tensorflow-gpu 

This command will install all libraries and drivers into your conda environment.

Don't be stupid! ;)

2021년 1월 13일 수요일

Making a shortcut of anaconda in ubuntu 18.04

 https://dannyda.com/2020/03/21/how-to-create-shortcut-icon-for-anaconda-anaconda3-navigator-launch-anaconda-navigator-in-linux-debian-ubuntu-kali-linux/

2021년 1월 7일 목요일

Lists the contents of a file in HDF5 with h5py

- h5ls is applied to a file containing a couple of datasets and a group: 
$ h5ls demo.hdf5
comp                     Dataset {1024}


- prints extended information and also recursively enters groups:
$ h5ls -vlr demo.hdf5
15                       Group
Opened "weather.hdf5" with sec2 driver.
/                        Group
    Location:  1:96
    Links:     1
/15                      Group
    Location:  1:1072
    Links:     1
/15/temperature          Dataset {1024/1024}
    Attribute: dt scalar
        Type:      native double
        Data:  10
    Attribute: start_time scalar
        Type:      native long
        Data:  1375204299
    Location:  1:800
    Links:     1
    Storage:   8192 logical bytes, 8192 allocated bytes, 100.00% utilization
    Type:      native double
/15/wind                 Dataset {2048/2048}
    Attribute: dt scalar
        Type:      native double
        Data:  5
    Location:  1:10896
    Links:     1
    Storage:   16384 logical bytes, 16384 allocated bytes, 100.00% utilization
    Type:      native double
/comp                    Dataset {1024/1024}
    Location:  1:11168
    Links:     1
    Chunks:    {1024} 4096 bytes
    Storage:   4096 logical bytes, 1456 allocated bytes, 281.32% utilization
    Filter-0:  deflate-1 OPT {4}
    Type:      native int


- h5ls is great for inspecting metadata like this. There’s also a program called h5dump,
which prints data as well, although in a more verbose format:
$ h5dump demo.hdf5
HDF5 "demo.hdf5" {
    GROUP "/" {
        DATASET "array" {
            DATATYPE H5T_STD_I32LE
            DATASPACE SIMPLE { ( 10 ) / ( 10 ) 
        }
        DATA {
            (0): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
        }
    }
    GROUP "group" {
        DATASET "subarray" {
            DATATYPE H5T_STD_I32LE
            DATASPACE SIMPLE { ( 2, 2 ) / ( 2, 2 ) 
        }
        DATA {
            (0,0): 2, 2,
            (1,0): 2, 2
        }
    }
}
    DATASET "scalar" {
        DATATYPE H5T_STD_I32LE
        16 | Chapter 2: Getting Started
        DATASPACE SCALAR
        DATA {
            (0): 42
        }
    }
}