source: trunk/CrypPlugins/KeySearcher/ExternalClient/Cryptool.h

Last change on this file was 8983, checked in by kopal, 10 months ago

Complete CrypTool 2 project

  • renamed "Cryptool" namespace to "CrypTool" namespace
File size: 1.1 KB
Line 
1#pragma once
2
3#include <CL/cl.hpp>
4#include <sys/time.h>
5
6#include "Job.h"
7
8class CrypTool
9{
10    private:
11        std::vector<cl::Platform> platforms;
12        std::vector<cl::Device> devices;
13        cl::Context* context;
14        cl::Kernel* kernel;
15        JobResult res;
16        cl::Buffer costs;
17        float* localCosts;
18    bool compareLargerThan;
19    int resultSize;
20    int platformChoice;
21    int deviceChoice;
22    timeval lastSubbatchCompleted;
23
24        static const int subbatch = 256*256*256;
25
26        void buildKernel(const Job& j);
27        void enqueueKernel(cl::CommandQueue& queue, int size, cl::Buffer& keybuffer, cl::Buffer& costs, const Job& j);
28        void enqueueSubbatch(cl::CommandQueue& queue, cl::Buffer& keybuffer, cl::Buffer& costs, int add, int length, const Job& j);
29        void pushInTop(std::list<std::pair<float, int> >& top, std::list<std::pair<float, int> >::iterator it, float val, int k);
30        std::list<std::pair<float, int> >::iterator isInTop(std::list<std::pair<float, int> >& top, float val, bool LargerThen);
31        void initTop(std::list<std::pair<float, int> >& top, bool LargerThen);
32    public:
33        CrypTool();
34        JobResult doOpenCLJob(const Job& j);
35    std::string getDeviceName();
36};
Note: See TracBrowser for help on using the repository browser.