一小套工具

pywup的Python项目详细描述


PYWUP

一小套工具。

待办事项:展开此markdown

如何安装/更新

pip3 install --upgrade pywup --user --no-cache-dir

如果安装后无法运行wup命令,请检查文件夹.local/bin的路径是否在您的路径中。如果没有,请在~/.bashrc结尾处添加以下内容:

export PATH=/home/<YOUR_USERNAME>/.local/bin:$PATH

图书馆

配置

这是一个python库,用于创建基于模板的配置脚本。

#!/usr/bin/env python3frompywup.configureimport*mf=TemplateBuilder()mf.compiler=find_program_or_abort(["clang++","g++"],"Compiler","clang")mf.python=find_header_or_abort("m/Python.h","Python header","python3-dev")mf.highgui=find_header_or_abort("/highgui.hpp","Opencv's highgui","opencv-dev")mf.imgproc=find_header_or_abort("/imgproc.hpp","Opencv's imgproc","opencv-dev")mf.valgrind_py=find_file_or_abort("python3-devel/valgrind-python.supp","valgrind suppression file for python3","python3-dev")mf.libimgcodecs=find_lib("libopencv_imgcodecs.so","libopencv_imgcodecs")mf.libs="-lopencv_core -lopencv_highgui -lopencv_imgproc -I../../wup/cpp/include"mf.headers="-DPYTHON_H=$(PYTHON_H) -DHIGHGUI_H=$(HIGHGUI_H) -DIMGPROC_H=$(IMGPROC_H)"ifmf.libimgcodecs:mf.libs+=" -lopencv_imgcodecs"mf.build("Makefile","""\CC={compiler}HIGHGUI_H={highgui}PYTHON_H={python}IMGPROC_H={imgproc}VALGRIND_PYTHON={valgrind_py}LIBS = {libs}HEADERS= {headers}all:	$(CC) -fPIC -shared wup_wrapper.cpp -o libwup.so -Wall -O3 -std=c++11 $(LIBS) $(HEADERS)run:	$(CC) main.cpp -o main -Wall -O3 -std=c++11 $(LIBS) $(HEADERS)	./maindebug:	$(CC) main.cpp -o main -Wall -g -std=c++11 $(LIBS) $(HEADERS)	gdb mainvalgrind:	$(CC) -fPIC -shared wup_wrapper.cpp -o libwup.so -Wall -O1 -g -std=c++11 $(LIBS) $(HEADERS)	valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --suppressions=$(VALGRIND_PYTHON) python3 main3.py --model wisard --dataset mnist 2> valgrind.out""")

wup

这是一个用于运行实验、打印和执行重复任务的命令行实用程序。

收集

collect多次运行程序并收集输出。

wup collect \
    --p TRAIN_TIME "Info: Time to train was ([-0-9\.e\+]+) μs"\
    --p TEST_TIME "Info: Time to test was ([-0-9\.e\+]+) μs"\
    --p ACC "Test Acc = ([0-9\.]+)"\
    --runs 10\
    --va THREADS 1172\
    --vg JOBS 1800001.6 \
    --o wespa.csv \
    --c "./wisard -createModel RamWisard -ramBits 28 -decoder classic -ramType prime \            -train mnist ../data/emnist/byclass/emnist-byclass-train \            -test mnist ../data/emnist/byclass/emnist-byclass-test \            -times -numThreads {} -hashSize 18041 -jobsPerThread {} -bleaching Y -pPredict 2"

热图

heatmap接收csv文件并生成heatmap。

wup heatmap \
    --data ./wespa.csv \
    --y "THREADS"\
    --x "JOBS"\
    --z "TEST_TIME"\
    --tz "data[0,z] / data[i,z]"\
    --tx "\"%d\" % int(float(data[i,x]))"\
    --ty "\"%d\" % int(float(data[i,y]))"\
    --tzz "\"%.2f\" % data[i,j]"\
    --title "Speedup (threads / blockSize)"\
    --size 104\
    --o heatmap_wespa.png

使用一个或多个csv文件生成条形图。

wup bars \
    --load ./note.csv \
    --line THREADS TEST_TIME "note test"\
    --line THREADS TRAIN_TIME "note train"\\
    --load ./out.csv \
    --line THREADS TEST_TIME "wespa test"\
    --line THREADS TRAIN_TIME "wespa train"\\
    --title "Predict speedups (threads / speedup)"\
    --ty "y[0,0] / y[i,j]"\
    --ts "y[0,0]*s[i,j] / (y[i,j]**2)"\
    --tyy "\"%.2f\" % ty[i,j] if ty[i,j] else ''"\
    --tx "int(float(x[i]))"\
    --xlabel "Threads"\
    --ylabel "Speedup"\
    --barwidth 0.9 \
    --size 104\
    --verbose \
    --o bars_parallelPredictSpeedup.png

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将多个线程中的函数放入单个队列   数组在Java中,如何在不改变整数顺序的情况下找到整数组的顺序?   java控制器属于表示层?   java Apache Ivy和本地Maven repo如何处理使用Maven 3构建的快照   Java可与泛型类型进行比较   java这个表达式在泛型中是什么意思   JavaEclipse和TeamCity插件   java检测构造函数中的final是否为空   java如何在StanfordCoreNLP管道中同时使用词汇化和依赖性解析器?   java在AntUnit控制台日志中显示完整异常堆栈跟踪   lambda如何与Java 8供应商建立连锁关系   如何让GRPC的重试机制在Kubernetes集群中使用grpcjava工作?   如何使用openjdk:7 Docker映像和Gradle包装器避免“EC参数错误”?   java将集合映射扩展为一维映射新的“无法推断函数接口类型”