Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
build-*
build
install
.cache
46 changes: 24 additions & 22 deletions include/cuSZp.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,49 @@
#define CUSZP_H

#include <cuda_runtime.h>
#include <cstddef>
#include "cuSZp/cuSZp_utility.h"
#include "cuSZp/cuSZp_timer.h"
#include <stddef.h>
#include <stdio.h>

#ifdef __cplusplus

#include "cuSZp/cuSZp_entry_1D_f32.h"
#include "cuSZp/cuSZp_entry_1D_f64.h"
#include "cuSZp/cuSZp_entry_2D_f32.h"
#include "cuSZp/cuSZp_entry_2D_f64.h"
#include "cuSZp/cuSZp_entry_3D_f32.h"
#include "cuSZp/cuSZp_entry_3D_f64.h"
#include <stdio.h>
#include "cuSZp/cuSZp_timer.h"
#include "cuSZp/cuSZp_utility.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
CUSZP_DIM_1D = 1, // 1D Processing Manner (can be used for all datasets)
CUSZP_DIM_2D = 2, // 2D Processing Manner (can be used for both 2D and 3D)
CUSZP_DIM_3D = 3 // 3d Processing Manner (can be used for only 3D datasets)
CUSZP_DIM_1D = 1, // 1D Processing Manner (can be used for all datasets)
CUSZP_DIM_2D = 2, // 2D Processing Manner (can be used for both 2D and 3D)
CUSZP_DIM_3D = 3 // 3d Processing Manner (can be used for only 3D datasets)
} cuszp_dim_t;

typedef enum {
CUSZP_MODE_FIXED = 0, // No-delta fixed-length encoding mode
CUSZP_MODE_PLAIN = 1, // Plain (with delta) fixed-length encoding mode
CUSZP_MODE_OUTLIER = 2, // Outlier fixed-length encoding mode
// CUSZP_MODE_AATROX = 3 // AaTrox (ICS'25) fixed-length encoding mode
CUSZP_MODE_FIXED = 0, // No-delta fixed-length encoding mode
CUSZP_MODE_PLAIN = 1, // Plain (with delta) fixed-length encoding mode
CUSZP_MODE_OUTLIER = 2, // Outlier fixed-length encoding mode
// CUSZP_MODE_AATROX = 3 // AaTrox (ICS'25) fixed-length encoding mode
} cuszp_mode_t;

typedef enum {
CUSZP_TYPE_FLOAT = 0, // Single precision floating point (f32)
CUSZP_TYPE_DOUBLE = 1 // Double precision floating point (f64)
CUSZP_TYPE_FLOAT = 0, // Single precision floating point (f32)
CUSZP_TYPE_DOUBLE = 1 // Double precision floating point (f64)
} cuszp_type_t;

void cuSZp_compress(void* d_oriData, unsigned char* d_cmpBytes,
size_t nbEle, size_t* cmpSize, float errorBound,
cuszp_dim_t dim, uint3 dims, cuszp_type_t type, cuszp_mode_t mode,
cudaStream_t stream = 0);
void cuSZp_decompress(void* d_decData, unsigned char* d_cmpBytes,
size_t nbEle, size_t cmpSize, float errorBound,
cuszp_dim_t dim, uint3 dims, cuszp_type_t type, cuszp_mode_t mode,
cudaStream_t stream = 0);
void cuSZp_compress(void *d_oriData, unsigned char *d_cmpBytes, size_t nbEle,
size_t *cmpSize, float errorBound, cuszp_dim_t dim,
uint3 dims, cuszp_type_t type, cuszp_mode_t mode,
cudaStream_t stream);
void cuSZp_decompress(void *d_decData, unsigned char *d_cmpBytes, size_t nbEle,
size_t cmpSize, float errorBound, cuszp_dim_t dim,
uint3 dims, cuszp_type_t type, cuszp_mode_t mode,
cudaStream_t stream);

#ifdef __cplusplus
}
Expand Down