mirror of
https://github.com/tiyn/wiki.git
synced 2026-03-09 16:44:46 +01:00
Merge branch 'master' of github:/tiyn/wiki
This commit is contained in:
@@ -314,8 +314,8 @@ This section is based on a
|
|||||||
|
|
||||||
In this case the error stems from a missing package.
|
In this case the error stems from a missing package.
|
||||||
Normally it can easily be fixed by installing that corresponding package.
|
Normally it can easily be fixed by installing that corresponding package.
|
||||||
But please note that [pyenv](/wiki/programming_language/golang.md#setup) can hide packages if the
|
But please note that [pyenv](/wiki/programming_language/python.md#pyenv-installation) can hide
|
||||||
global Python version is set to something other than `system`.
|
packages if the global Python version is set to something other than `system`.
|
||||||
This is especially the case on [Arch Linux-systems](/wiki/linux/arch-linux.md) because Python
|
This is especially the case on [Arch Linux-systems](/wiki/linux/arch-linux.md) because Python
|
||||||
packages are also installed via [Pacman or Yay](#arch-linux-pacman-and-yay).
|
packages are also installed via [Pacman or Yay](#arch-linux-pacman-and-yay).
|
||||||
In this case the global Version has to be changed to `system` or the package installed to the
|
In this case the global Version has to be changed to `system` or the package installed to the
|
||||||
|
|||||||
16
wiki/programming_language.md
Normal file
16
wiki/programming_language.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Programming Language
|
||||||
|
|
||||||
|
A programming language is a language for expressing computer programs.
|
||||||
|
|
||||||
|
## List of Programming Languages
|
||||||
|
|
||||||
|
The following is a list of programming languages that are featured in this wiki.
|
||||||
|
|
||||||
|
- [C](/wiki/programming_language/c.md)
|
||||||
|
- [Go](/wiki/programming_language/go.md)
|
||||||
|
- [Nim](/wiki/programming_language/nim.md)
|
||||||
|
- [Python](/wiki/programming_language/python.md)
|
||||||
|
- [Rocq](/wiki/programming_language/rocq.md)
|
||||||
|
- [Rust](/wiki/programming_language/rust.md)
|
||||||
|
- [VHDL](/wiki/programming_language/vhdl.md)
|
||||||
|
- [Viper](/wiki/programming_language/viper.md)
|
||||||
@@ -174,21 +174,20 @@ This section addresses the [PyTorch module](https://pytorch.org/).
|
|||||||
Pytorch is a machine learning resource which is often used for
|
Pytorch is a machine learning resource which is often used for
|
||||||
[neural networks](/wiki/neural_network.md).
|
[neural networks](/wiki/neural_network.md).
|
||||||
|
|
||||||
#### Setup Pytorch with Cuda for GPU usage
|
#### Setup Pytorch with CUDA for GPU usage
|
||||||
|
|
||||||
Please note that according to
|
CUDA is also only available for Nvidia GPUs.
|
||||||
[various sources](https://www.reddit.com/r/archlinux/comments/1nxipcu/nvidia_pascal/gpu_not_supporting_cuda_13_can_i)
|
For AMD GPUs refer to [the ROCm section](#setup-pytorch-with-rocm-for-gpu-usage).
|
||||||
Cuda 13 does not support nVidia Pascal GPUs.
|
|
||||||
In this case an earlier version of Cuda has to be used.
|
|
||||||
|
|
||||||
If you are on Arch Linux or a distribution based on it install
|
If you are on Arch Linux or a distribution based on it install
|
||||||
`python-pytorch-cuda` via `pacman -S python-pytorch-cuda`.
|
`python-pytorch-cuda` via `pacman -S python-pytorch-cuda`.
|
||||||
|
|
||||||
After that visit
|
After that visit
|
||||||
[the official pytorch website](https://pytorch.org/get-started/locally/) and
|
[the official PyTorch website](https://pytorch.org/get-started/locally) and
|
||||||
install pytorch for your custom configuration.
|
install PyTorch for your custom configuration.
|
||||||
|
|
||||||
After that try to run the following python script:
|
After that try to run the following python script.
|
||||||
|
This should give back `True` if the setup was successful and the GPU is available.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import torch
|
import torch
|
||||||
@@ -196,7 +195,66 @@ import torch
|
|||||||
torch.cuda.is_available()
|
torch.cuda.is_available()
|
||||||
```
|
```
|
||||||
|
|
||||||
This should give back `True`.
|
Please note that according to
|
||||||
|
[various sources](https://www.reddit.com/r/archlinux/comments/1nxipcu/nvidia_pascal/gpu_not_supporting_cuda_13_can_i)
|
||||||
|
CUDA 13 does not support nVidia Pascal GPUs.
|
||||||
|
In this case an earlier version of CUDA has to be used.
|
||||||
|
|
||||||
|
#### Setup PyTorch with ROCm for GPU usage
|
||||||
|
|
||||||
|
ROCm is also only available for AMD GPUs.
|
||||||
|
For Nvidia GPUs refer to [the CUDA section](#setup-pytorch-with-cuda-for-gpu-usage).
|
||||||
|
|
||||||
|
For ROCm to work some system packages have to be installed.
|
||||||
|
For Linux refer to the
|
||||||
|
[official Linux guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/native_linux/install-radeon.html).
|
||||||
|
For [Arch Linux](/wiki/linux/arch-linux.md) although it is not listed the required
|
||||||
|
[AUR packages](/wiki/linux/package_manager.md) include `rocm-core`, `rocminfo`, `roctracer` and
|
||||||
|
`rccl`.
|
||||||
|
For Windows refer to the
|
||||||
|
[official Windows guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/windows/howto_windows.html).
|
||||||
|
|
||||||
|
After the systemwide setup the project environment can be setup.
|
||||||
|
It is recommended to use [virtual environments](#using-virtual-environments).
|
||||||
|
The easiest way to achieve ROCm support is by using [pip](#modules).
|
||||||
|
As explained in the
|
||||||
|
[official PyTorch guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/native_linux/install-pytorch.html)
|
||||||
|
the following example can be used inside the environment to install all needed ROCm packages.
|
||||||
|
In this example the version `7.2` is installed.
|
||||||
|
Adjustments to the command may have to be done in case another version should be installed.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.9.1%2Brocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl
|
||||||
|
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchvision-0.24.0%2Brocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl
|
||||||
|
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/triton-3.5.1%2Brocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl
|
||||||
|
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchaudio-2.9.0%2Brocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl
|
||||||
|
pip install \
|
||||||
|
torch-2.9.1+rocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl \
|
||||||
|
torchvision-0.24.0+rocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl \
|
||||||
|
torchaudio-2.9.0+rocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl \
|
||||||
|
triton-3.5.1+rocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl
|
||||||
|
```
|
||||||
|
|
||||||
|
If old versions of `torch`, `torchvision`, `torchaudio` or `triton` are installed inside the
|
||||||
|
environment they may need to be removed.
|
||||||
|
|
||||||
|
After this installation for some GPUs - especially integrated GPUs like the Radeon 660M - an
|
||||||
|
additional step has to be taken.
|
||||||
|
In this case the following global shell variable has to be set.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export HSA_OVERRIDE_GFX_VERSION=10.3.0
|
||||||
|
```
|
||||||
|
|
||||||
|
After that try to run the following python script.
|
||||||
|
Since ROCm uses a bridge to access CUDA it should give back `True` if the setup was successful and
|
||||||
|
the GPU is available.
|
||||||
|
|
||||||
|
```python
|
||||||
|
import torch
|
||||||
|
|
||||||
|
torch.cuda.is_available()
|
||||||
|
```
|
||||||
|
|
||||||
### Hailo
|
### Hailo
|
||||||
|
|
||||||
|
|||||||
75
wiki/programming_language/rocq.md
Normal file
75
wiki/programming_language/rocq.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# Rocq
|
||||||
|
|
||||||
|
[Rocq](https://rocq-prover.org/) is an interactive theorem prover.
|
||||||
|
It was formerly known as Coq.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Rocq can be installed as explained on [the official website](https://rocq-prover.org/install).
|
||||||
|
|
||||||
|
The easiest way to install Rocq is by using Opam due to it also being able to manage packages for
|
||||||
|
Rocq.
|
||||||
|
Opam needs to be installed for this.
|
||||||
|
On most [Linux-based Systems](/wiki/linux.md) the [package manager](/wiki/linux/package_manager.md)
|
||||||
|
contains a package called `opam`.
|
||||||
|
If Opam was not initialized before, do it using the following commands.
|
||||||
|
The command may ask to edit the config file for the shell.
|
||||||
|
This is needed to function correctly.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
opam init
|
||||||
|
eval $(opam env)
|
||||||
|
```
|
||||||
|
|
||||||
|
Then Rocq can be installed using the following command.
|
||||||
|
`<version>` has to be set to the desired version to install (for example `9.0.0`).
|
||||||
|
|
||||||
|
```sh
|
||||||
|
opam pin add rocq-prover <version>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
This section addresses the usage of Rocq.
|
||||||
|
|
||||||
|
### Basic Usage
|
||||||
|
|
||||||
|
Rocq proves are saved in `.v` files.
|
||||||
|
These can be compiled using the following command where `<file>` is a Rocq proof file.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
rocq c <file>
|
||||||
|
```
|
||||||
|
|
||||||
|
If nothing is shown as output and files like a `.vo` file are generated the proof was successful.
|
||||||
|
Otherwise it was not successful.
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
The following example proofs can be used to confirm the [Rocq setup](#setup) to work correctly.
|
||||||
|
|
||||||
|
The following is a simple proof for commutativity of addition.
|
||||||
|
This proof is correct.
|
||||||
|
|
||||||
|
```v
|
||||||
|
Theorem plus_comm : forall n m : nat, n + m = m + n.
|
||||||
|
Proof.
|
||||||
|
intros n m.
|
||||||
|
induction n as [| n' IH].
|
||||||
|
- simpl. rewrite <- plus_n_O. reflexivity.
|
||||||
|
- simpl. rewrite IH. rewrite <- plus_n_Sm. reflexivity.
|
||||||
|
Qed.
|
||||||
|
```
|
||||||
|
|
||||||
|
The following proof attempts to proof that all natural numbers are equal to zero which is obviously
|
||||||
|
false.
|
||||||
|
|
||||||
|
```v
|
||||||
|
Theorem all_zero : forall n : nat, n = 0.
|
||||||
|
Proof.
|
||||||
|
intros n.
|
||||||
|
destruct n.
|
||||||
|
- reflexivity.
|
||||||
|
- reflexivity.
|
||||||
|
Qed.
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user