Hetzner
Table of Contents
Adding HW
List: https://docs.hetzner.com/robot/dedicated-server/dedicated-server-hardware/price-server-addons/
41EUR is to install drives in mint condition
Storage box
ssh-keygen -f hetznercat hetzner_box.pub | ssh -p23 uXXXXX-sub1@uXXXXX.your-storagebox.de install-ssh-key
vi ~/.config/rclone/rclone.conf[storagebox]type = sftphost = uXXXXX.your-storagebox.deuser = uXXXXXport = 23pass = <obscured-password>rclone obscure <clear-text-password> is to generate obsured password and rclone ls storagebox: to verify.
rclone configure to configure encryption.
Troubleshooting
From the server:
nc -vv uXXXXX.your-storagebox.de 23sshfs -p23 uXXXXX@uXXXXX.your-storagebox.de:/home ./tmp_test -o IdentityFile=~/.ssh/hetzner_storage_box
iGPU processors on Intel CPUs
Enabling
Enabling for iGPU processors on Hetzner servers, as per article. i7 processor is of 6th generation and it does have iGPU.
ls -la /dev/dri # expected to fail -> iGPU is disabledvi /etc/modprobe.d/blacklist-hetzner.conf # comment out (disabled) i915 & i915_bdwvi /etc/default/grub.d/hetzner.cfg # at GRUB_CMDLINE_LINUX_DEFAULT, 'nomodeset' to be removedsudo grub-mkconfig -o /boot/grub/grub.cfgsudo shutdown -r nowls -la /dev/dri # shall give devices listsudo lspci -v -s $(lspci | grep VGA | cut -d" " -f 1) # shall contain 'Kernel driver in use: i915'sudo apt install intel-gpu-toolssudo intel_gpu_topGetting VRAM size
LC_ALL=C lspci -v | grep -EA10 "3D|VGA" | grep 'prefetchable'llama.cpp & whisper.cpp backends
- Vulkan - can run solely on iGPU
- SYCL -supports iGPU of Intel starting with Intel 11th generation
- Blis - seems to be CPU only
- OpenVINO - supports many cards, including iGPU
nvtop could be used on a newer systems (>5.19 kernel; snap install nvtop to get the latest).
But on Intel it seems like it could get increase, as required.
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz It’s Intel Corporation HD Graphics 630 @ Intel Kabylake (Gen9) Memory at ee000000 (64-bit, non-prefetchable) [size=16M] Memory at d0000000 (64-bit, prefetchable) [size=256M] Supported by Vulkan (ref). It has 24 execution units but no embedded DRAM SYSCL backend supports Intel 11 gen and above. Probably, Vulkan might work, but I can’t see Linux references.
- And yeah - whisper won’t work via SYCL framework.
- StableDiffusion - probably (needs research); wonder if I can run FLUX on it
- Llama interference - needs research, but seems like blis is an option to try.
- might work for ffmpeg, if I have it
Intel’s 11th generation CPUs seems to start with 11400 and above.
Blis framework seems to be very interesting to run on CPU and GPU (ref), HW compatibility: https://github.com/flame/blis/blob/master/docs/HardwareSupport.md
git clone https://github.com/flame/bliscd blis./configure --enable-cblas -t openmp,pthreads automake -jsudo make installcd ..git clone https://github.com/ggerganov/llama.cppcd llama.cppmake GGML_BLIS=1 -jLD_LIBRARY_PATH=/usr/local/lib ./llama-cli -m your_model.gguf -p "I believe the meaning of life is" -n 128That works, not sure how fast, but it doesn’t pick up my iGPU.
- Try Vulkan on Linux as per ref [completion:: 2024-08-18]
sudo su -wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add -# it's for Ubuntu 22.04! 24.04 shall be picked up from https://vulkan.lunarg.com/doc/view/latest/linux/getting_started_ubuntu.htmlwget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.listapt update -yapt-get install -y vulkan-sdk# To verify the installation, use the command below:vulkaninfovkvia # needs X11
git clone https://github.com/ggerganov/llama.cppcd llama.cpp
sudo apt install cmake libvulkan-devcmake -B build -DGGML_VULKAN=1cmake --build build --config Release# Test the output binary (with "-ngl 33" to offload all layers to GPU)./build/bin/llama-cli -m "PATH_TO_MODEL" -p "Hi you how are you" -n 50 -e -ngl 33 -t 4
# You should see in the output, ggml_vulkan detected your GPU. For example:# ggml_vulkan: Using Intel(R) Graphics (ADL GT2) | uma: 1 | fp16: 1 | warp size: 32Yep - that works! First launch is slow, but then it’s much faster! Running via CPU seems to be faster, which is mostly due to low VRAM, I believe. But there is no load on CPU, which is good.
Whisper supports OpenVINO and OpenVINO seems to support 630’s card. The question remains is how to allocate more memory in there.
- Compile and try to run Whisper with OpenVINO as per ref
git clone https://github.com/ggerganov/whisper.cpp.gitcd whisperbash ./models/download-ggml-model.sh large-v3cd modelspython3.11 -m venv openvino_conv_env # 3.12 requires numpy woodoo: https://stackoverflow.com/questions/77364550/attributeerror-module-pkgutil-has-no-attribute-impimporter-did-you-mean/77364602#77364602source openvino_conv_env/bin/activate# python -m pip install --upgrade pip# pip install setuptools# pip install numpy==1.26.4 # for Python 3.12+pip install -r requirements-openvino.txtpip install openai-whisperpython convert-whisper-to-openvino.py --model large-v3# This will produce ggml-base.en-encoder-openvino.xml/.bin IR model files. It's recommended to relocate these to the same folder as ggml models, as that is the default location that the OpenVINO extension will search at runtime.ls ggml-base.en-encoder-openvino.*# download https://github.com/openvinotoolkit/openvino/releases/tag/2023.0.0sudo mkdir /opt/intel# 24.04 instructions!curl -L https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.3/linux/l_openvino_toolkit_ubuntu24_2024.3.0.16041.1e3b88e4e3f_x86_64.tgz --output openvino_2024.3.0.tgztar -xf openvino_2024.3.0.tgzsudo mv l_openvino_toolkit_ubuntu24_2024.3.0.16041.1e3b88e4e3f_x86_64 /opt/intel/openvino_2024.3.0cd /opt/intel/openvino_2024.3.0sudo -E ./install_dependencies/install_openvino_dependencies.shcd /opt/intelsudo ln -s openvino_2024.3.0 openvino_2024source /opt/intel/openvino_2024/setupvars.sh
# python -c "from openvino import Core; print(Core().available_devices)"cd ..cmake -B build -DWHISPER_OPENVINO=1cmake --build build -j --config Release ./main -m models/ggml-base.en.bin -f samples/jfk.wav # The first time run on an OpenVINO device is slow, since the OpenVINO framework will compile the IR (Intermediate Representation) model to a device-specific 'blob'. This device-specific blob will get cached for the next run.
mkdir neocd neowget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17193.4/intel-igc-core_1.0.17193.4_amd64.debwget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17193.4/intel-igc-opencl_1.0.17193.4_amd64.debwget https://github.com/intel/compute-runtime/releases/download/24.26.30049.6/intel-level-zero-gpu-dbgsym_1.3.30049.6_amd64.ddebwget https://github.com/intel/compute-runtime/releases/download/24.26.30049.6/intel-level-zero-gpu_1.3.30049.6_amd64.debwget https://github.com/intel/compute-runtime/releases/download/24.26.30049.6/intel-opencl-icd-dbgsym_24.26.30049.6_amd64.ddebwget https://github.com/intel/compute-runtime/releases/download/24.26.30049.6/intel-opencl-icd_24.26.30049.6_amd64.debwget https://github.com/intel/compute-runtime/releases/download/24.26.30049.6/libigdgmm12_22.3.20_amd64.debsudo dpkg -i *.deb
./main -m ../../models/ggml-large-v3.bin -f ../../samples/jfk.wav -oved GPU # that worksIt’s a bit faster, when with GPU (76 seconds vs 105-120), but loads CPU all the same. But yeah - it works and it’s faster. Experiment finished 2024-08-23.
Adding second IP address
Add the ip address with /32 mask to netplan configuration. Check with ip address list command. This way an interface will have two IP addresses.
For virtualization purposes, routing and bridge interface has to be configured. As of 2024-07-29, I don’t fucking know how.
Seems like configuring a bridge and configuring multipass is an option: ref. But it feels so much complicated for me…
iptables are in use at Multipass.
And it seems like packets forward might just work. Probably, smth like that. ufw doesn’t offer ip masquerading. Ok.
btw, probably, a simple socat might work. Or, manually rolled out Synapse server. I will leave it here, as is, for now. Verified - now, I don’t want to manually re-roll-out Synapse server only - I will need to re-setup mail, database, updates, etc - doable, but why?
Firewall
Robot Firewall - can have 10 rules only; up to 3 ports can be specified via comma.
IPv6 addresses info
Basically all dedicated root servers at Hetzner from our AX-, DX-, EX-, RX-, SX- lines, all servers from the server auction and all cloud (virtual) servers are fully unmanaged with full „root“ access. That means, you have to administer the management of configuration and software (including OS and software installation, backup, monitoring, etc.) of the server yourself. For dedicated root and virtual servers, we only provide the hardware, network access and necessary infrastructure; and of course, we support our customers in case there are any failures or disruptions. Unfortunately, we don’t offer software support in general.
Our clients sometimes engage experts as consultants or a partner to handle adminstrative tasks, if they feel overwhelmed by the efforts involved.
May I ask you for some documents / guide / smth on how I do connect extra IPv6 address to my server?
Feel free to explore a wealth of information in our Hetzner Docs: https://docs.hetzner.com/
Please go to our site and ask the AI Bot: “how to configure IPv6 addresses with a Hetzner dedicated root server?” https://www.hetzner.com/dedicated-rootserver/
It will point you to these two Hetzner Docs pages: https://docs.hetzner.com/robot/dedicated-server/network/net-config-debian-ubuntu/#ipv6 https://docs.hetzner.com/robot/dedicated-server/general-information/system-adjustments-after-server-replacement/#content-of-the-network-config-4
There is a costfee IPv6 /64 subnet inclued with Server Auction #2439185 so you have over 18 quintillion IPv6 addresses available.
We can deliver an additional /56 IPv6 subnet at the once-off cost of € 15.00 (excl. VAT). If you would like this additional subnet, please confirm the costs. https://docs.hetzner.com/general/others/ipv4-pricing/#additional-56-ipv6-net-dedicated-root-servers