Ignore:
Timestamp:
May 10, 2018, 2:28:16 PM (16 months ago)
Author:
xwa163
Message:
  1. Implement SwizzledMultiplePDEPkernel with the same logic as new PDEPkernel, remove LZ4MultiplePDEPkernel, improve the performance
  2. Remove some unnecessary include
  3. Add prefix for some kernels
  4. Remove a legacy kernel
Location:
icGREP/icgrep-devel/icgrep/kernels
Files:
2 added
4 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/kernels/lz4/lz4_block_decoder.cpp

    r6020 r6026  
    1515namespace kernel{
    1616
    17 LZ4BlockDecoderNewKernel::LZ4BlockDecoderNewKernel(const std::unique_ptr<kernel::KernelBuilder> &iBuilder)
    18 : SegmentOrientedKernel("LZ4BlockDecoderNewKernel",
     17LZ4BlockDecoderNewKernel::LZ4BlockDecoderNewKernel(const std::unique_ptr<kernel::KernelBuilder> &iBuilder, std::string&& kernelName)
     18: SegmentOrientedKernel(std::string(kernelName),
    1919// Inputs
    2020{
  • icGREP/icgrep-devel/icgrep/kernels/lz4/lz4_block_decoder.h

    r5984 r6026  
    2020namespace kernel {
    2121
    22 class LZ4BlockDecoderNewKernel final : public SegmentOrientedKernel {
     22class LZ4BlockDecoderNewKernel : public SegmentOrientedKernel {
    2323public:
    24     LZ4BlockDecoderNewKernel(const std::unique_ptr<kernel::KernelBuilder> &iBuilder);
     24    LZ4BlockDecoderNewKernel(const std::unique_ptr<kernel::KernelBuilder> &iBuilder, std::string&& kernelName = "LZ4BlockDecoderKernel");
    2525protected:
    2626    void generateDoSegmentMethod(const std::unique_ptr<KernelBuilder> & iBuilder) override;
  • icGREP/icgrep-devel/icgrep/kernels/lz4/lz4_swizzled_match_copy_kernel.cpp

    r6020 r6026  
    374374}
    375375
    376 LZ4SwizzledMatchCopyKernel::LZ4SwizzledMatchCopyKernel(const std::unique_ptr<kernel::KernelBuilder> &iBuilder, unsigned streamCount/*=4*/, unsigned streamSize/*=2*/, unsigned swizzleFactor/*=4*/, unsigned PDEP_width/*64*/)
    377 : SegmentOrientedKernel("LZ4SwizzledMatchCopyKernel",
     376LZ4SwizzledMatchCopyKernel::LZ4SwizzledMatchCopyKernel(const std::unique_ptr<kernel::KernelBuilder> &iBuilder, unsigned streamCount, unsigned streamSize, unsigned swizzleFactor, unsigned PDEP_width, std::string name)
     377: SegmentOrientedKernel(std::move(name),
    378378// Inputs
    379379{
  • icGREP/icgrep-devel/icgrep/kernels/lz4/lz4_swizzled_match_copy_kernel.h

    r6020 r6026  
    1212    class LZ4SwizzledMatchCopyKernel: public SegmentOrientedKernel {
    1313    public:
    14         LZ4SwizzledMatchCopyKernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, unsigned streamCount, unsigned streamSize, unsigned swizzleFactor, unsigned PDEP_width = 64);
     14        LZ4SwizzledMatchCopyKernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, unsigned streamCount, unsigned streamSize, unsigned swizzleFactor, unsigned PDEP_width = 64, std::string name = "LZ4SwizzledMatchCopyKernel");
    1515    protected:
    1616        void generateDoSegmentMethod(const std::unique_ptr<KernelBuilder> & b) override;
  • icGREP/icgrep-devel/icgrep/kernels/s2p_kernel.cpp

    r6003 r6026  
    150150    kb->SetInsertPoint(s2pDone);
    151151}
    152 
    153 S2PKernel::S2PKernel(const std::unique_ptr<KernelBuilder> & b, bool aligned)
    154 : MultiBlockKernel(aligned ? "s2p" : "s2p_unaligned",
     152S2PKernel::S2PKernel(const std::unique_ptr<KernelBuilder> & b, bool aligned, std::string prefix)
     153: MultiBlockKernel(aligned ? prefix + "s2p" : prefix + "s2p_unaligned",
    155154    {Binding{b->getStreamSetTy(1, 8), "byteStream", FixedRate(), Principal()}},
    156155    {Binding{b->getStreamSetTy(8, 1), "basisBits"}}, {}, {}, {}),
  • icGREP/icgrep-devel/icgrep/kernels/s2p_kernel.h

    r6002 r6026  
    99
    1010#include <pablo/pablo_kernel.h>
     11#include <string>
    1112
    1213namespace IDISA { class IDISA_Builder; }  // lines 14-14
     
    1718class S2PKernel final : public MultiBlockKernel {
    1819public:
    19     S2PKernel(const std::unique_ptr<kernel::KernelBuilder> & b, bool aligned = true);
     20    S2PKernel(const std::unique_ptr<kernel::KernelBuilder> & b, bool aligned = true, std::string prefix = "");
    2021    bool isCachable() const override { return true; }
    2122    bool hasSignature() const override { return false; }
  • icGREP/icgrep-devel/icgrep/kernels/swizzle.cpp

    r5985 r6026  
    66#include "swizzle.h"
    77#include <kernels/kernel_builder.h>
     8#include <string>
    89
    910using namespace llvm;
    1011
    1112namespace kernel {
    12 
    13 SwizzleGenerator::SwizzleGenerator(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, unsigned bitStreamCount, unsigned outputSets, unsigned inputSets, unsigned fieldWidth)
    14 : BlockOrientedKernel("swizzle" + std::to_string(fieldWidth) + ":" + std::to_string(bitStreamCount), {}, {}, {}, {}, {})
     13SwizzleGenerator::SwizzleGenerator(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, unsigned bitStreamCount, unsigned outputSets, unsigned inputSets, unsigned fieldWidth, std::string prefix)
     14: BlockOrientedKernel(prefix + "swizzle" + std::to_string(fieldWidth) + ":" + std::to_string(bitStreamCount) + "_" + std::to_string(outputSets) + "_" + std::to_string(inputSets) , {}, {}, {}, {}, {})
    1515, mBitStreamCount(bitStreamCount)
    1616, mFieldWidth(fieldWidth)
  • icGREP/icgrep-devel/icgrep/kernels/swizzle.h

    r5594 r6026  
    5252public:
    5353   
    54     SwizzleGenerator(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, unsigned bitStreamCount, unsigned outputSets = 1, unsigned inputSets = 1, unsigned fieldWidth = 64);
     54    SwizzleGenerator(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, unsigned bitStreamCount, unsigned outputSets = 1, unsigned inputSets = 1, unsigned fieldWidth = 64, std::string prefix = "");
    5555   
    5656protected:
Note: See TracChangeset for help on using the changeset viewer.