Skip to content

Instantly share code, notes, and snippets.

View ptheywood's full-sized avatar

Peter Heywood ptheywood

View GitHub Profile
@ptheywood
ptheywood / cuda-win.sublime-build
Created October 20, 2014 13:45
Sublime text build script for c++ cuda, modified to be windows friendly
{
"cmd": [
"nvcc",
"-arch=sm_20",
"$file",
"-o",
"${file_path}/${file_base_name}"
],
"file_regex": "^(..[^:]):([0-9]+):?([0-9]+)?:? (.)$",
"working_dir": "${file_path}",
@ptheywood
ptheywood / gs-windows.md
Last active April 18, 2024 14:53
Instructions for PDF compression via Ghostscript on Windows

Ghostscript PDF compression on Windows

Installation

  1. Download and install Ghostscript for windows (http://downloads.ghostscript.com/public/gs916w32.exe)
  2. Optional - Add the ghostscript directory to the path environment variable
    • Control Panel > System > Advanced System Settings > Environment Variables
    • Add ;C:\Program Files (x86)\gs\gs9.16\bin to th end of the PATH variable

Usage

@ptheywood
ptheywood / functions.cu
Created April 21, 2017 12:24
FLAME GPU Device output. Place in an init function for now.
void outputDeviceInfo(){
cudaError_t err;
int deviceId;
err = cudaGetDevice(&deviceId);
if (err == cudaSuccess){
struct cudaDeviceProp prop;
err = cudaGetDeviceProperties(&prop, deviceId);
if (err == cudaSuccess){
printf("Device %i: %s, sm %i.%i\n", deviceId, prop.name, prop.major, prop.minor);
}
find ./examples -type f -name "*.vcxproj" -exec sed -i 's/ToolsVersion="12.0"/ToolsVersion="14.0"/g' {} +
find ./examples -type f -name "*.vcxproj" -exec sed -i 's/<PlatformToolset>v120<\/PlatformToolset>/<PlatformToolset>v140<\/PlatformToolset>/g' {} +
find ./examples -type f -name "*.vcxproj" -exec sed -i 's/CUDA 7.0./CUDA 8.0./g' {} +
find ./examples -type f -name "*.vcxproj" -exec sed -i 's/compute_20,sm_20;compute_30,sm_30;compute_35,sm_35;compute_50,sm_50/compute_30,sm_30;compute_35,sm_35;compute_50,sm_50;compute_60,sm_60/g' {} +
find ./examples -type f -name "Makefile" -exec sed -i 's/cuda-7.5/cuda-8.0/g' {} +
find ./examples -type f -name "Makefile" -exec sed -i 's/20 30 35 37 50 52/30 35 37 50 60/g' {} +

FLAME GPU

http://www.flamegpu.com

Current version: 1.5.0 for CUDA 8.0

FLAME GPU (Flexible Large-scale Agent Modelling Environment for Graphics Processing Units) is @todo high level description.

Documentation

function activate_cuda(){
if [ $# -ne 1 ] ; then
echo "Usage: active_cuda <version>"
echo " i.e. activate_cuda 8.0"
else
CUDA_VER=$1
CUDA_SRC="/usr/local/cuda-$CUDA_VER"
CUDA_DST="/usr/local/cuda"
if [ -d "$CUDA_SRC" ]; then
echo "Activating CUDA $CUDA_VER intalled at $CUDA_SRC"
@ptheywood
ptheywood / selectCUDADevices.sh
Last active June 19, 2020 10:06
Select the cuda device which is being least-utilised. in a system.
#! /bin/bash
# As of 2020-06-19 this is no longer required for University of Sheffield HPC systems usign SGE (Iceberg or ShARC).
# The SGE GPU allocation process has been improved to limit the devices available.
# If you request one Device, your session can now only see one device, instead of all available.
# Outputs the number of GPUs requested by an SGE job.
function getSGERequestedGPUCount {
export PATH="$SGE_ROOT/bin/lx-amd64/:$PATH"
# Fixing Nvidia 4.18+ Profiling on Ubuntu 19.04
1. Set module parmeter
```
echo 'options nvidia "NVreg_RestrictProfilingToAdminUsers=0"' | sudo tee -a /etc/modprobe.d/nvidia.conf
```
2. Rebuild intramfs.

Regular expression to validate 1-4 comma separated c++ decimal values

([+-]?((([1-9][0-9]*|0))|((([0-9]+[eE][+-]?[0-9]+)|((([0-9]+\.)|([0-9]*\.[0-9]+))([eE][+-]?[0-9]+)?))[Ff]?)))(([ ]*,[ ]*)[+-]?(([1-9][0-9]*)|((([0-9]+[eE][+-]?[0-9]+)|((([0-9]+\.)|([0-9]*\.[0-9]+))([eE][+-]?[0-9]+)?))[Ff]?))){0,3}

For regex engines othern than XSD schema, wrap with ^...$ to match the full string

i.e.