求四次函数最小值的CPU/GPU库

QuarticSolver的Python项目详细描述


CUDA四次解算器

GitHubBuild StatusPyPI

为CPU和Nvidia GPU编写的通用三次方程解算器和四次方程最小化解算器,有关更多详细信息和结果,请参阅:https://arxiv.org/abs/1903.10041。该库可用于C++ +CUDA以及Python使用pybDun11。在

运行解算器

要求

  1. 运行GPU解算器需要支持CUDA 9.0+的GPU和nvcc
  2. CMake 3.8以上
  3. Python3.6,numpy(如果使用Python)
  4. Pybind11 v2.5.0+(installation instructions

CMake

CMake可用于构建项目,例如:

git clone --recursive https://github.com/qureshizawar/CUDA-quartic-solver
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release ../ -D CPP_exe=true -D GPU_build=false
make

CPP_exe标志设置为true时,CMake将构建一个c++可执行文件,然后可以执行quartic_solver_main来运行示例代码。 当GPU_build标志设置为true时,CMake将构建支持CUDA的库版本。在

Python

Python包可以通过构建其.whl文件来安装,例如:

^{pr2}$

GPU_build标志设置为True时,将构建支持CUDA的库版本。 然后可以使用生成的.whl来安装包,例如:

pip install ./dist/QuarticSolver-0.1.1-cp36-cp36m-linux_x86_64.whl

用法

请参见src/main.cusrc/cpu_main.cpp,以及{}文件夹中的示例以获取详细的用法示例

C++ +/H5>

通过调用四分函数的四次函数来计算函数的最小值:

QuarticMinimumCPU(N, A, B, C, D, E, min);

其中:

  • N是函数的数目
  • A是一个数组,包含每个四次函数的系数A
  • B是一个数组,包含每个四次函数的系数B
  • C是一个数组,包含每个四次函数的系数C
  • D是一个数组,包含每个四次函数的系数D
  • E是一个数组,包含每个四次函数的系数E
  • min是一个数组,它将包含每个四次函数对应的最小值

计算可以通过使用QuarticMinimumGPUQuarticMinimumGPUStreams在GPU上执行。请注意,当QuarticMinimumGPUQuarticMinimumGPUStreams相比,N>10000的性能有显著提高

Python

Python版本的库可以如下使用:

import numpy as np
import QuarticSolver

minimum = QuarticSolver.QuarticMinimum(A,B,C,D,E,True)

其中ABCDE是包含四次函数系数的numpy数组,最后一个参数是一个布尔标志,如果设置为True,它将使用GPU(如果可能)。minimum是返回的numpy数组,包含相应的最小值。在

托多

  1. 添加多gpu支持

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

推荐PyPI第三方库


热门话题
onclicklistner中的java全局变量   Android中的Tensorflow:java。尼奥。BufferOverFlowException   java无法预先部署处于无效状态的PersistenceUnit[PU][DeployFailed]   java Liferay;将其他参数传递给jQuery UI aotocompleter   java如何使用Netflix/Eureka服务中的发现信息在Netflix/Zuul和Netflix/Ribbon中启用自动路由?   java如何使用命令打开spotlight   java Android为按钮分配数组值   jsp java。NoClassDefFoundError:即将推出java servlet   应用程序存储设置的java意图   java Android viewflow验证   java如何为多个列表重用BaseAdapter视图   在Java中,socket通过internet发送多播数据包   JavaXStream加载自定义XML