Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jerrrrry
infinicore
Commits
a9db6af1
Commit
a9db6af1
authored
Feb 21, 2025
by
PanZezhong
Browse files
issue/69 增加通用status,增加运行时接口
parent
484554c7
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
3 deletions
+73
-3
include/infinicore.h
include/infinicore.h
+23
-3
include/infinirt.h
include/infinirt.h
+50
-0
No files found.
include/infinicore.h
View file @
a9db6af1
...
...
@@ -2,8 +2,8 @@
#define __INFINICORE_H__
#include <stdint.h>
#ifndef __INFINI
CORE
_EXPORT_C__
#define __INFINI
CORE
_EXPORT_C__
#ifndef __INFINI_EXPORT_C__
#define __INFINI_EXPORT_C__
#if defined(_WIN32)
#define __export __declspec(dllexport)
#elif defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
...
...
@@ -19,7 +19,27 @@
#define __C
#include <stddef>
#endif
#endif // __INFINICORE_EXPORT_C__
#endif // __INFINI_EXPORT_C__
#ifndef __INFINI_STATUS__
#define __INFINI_STATUS__
typedef
enum
{
// Success
INFINI_STATUS_SUCCESS
=
0
,
// General Errors
INFINI_STATUS_INTERNAL_ERROR
=
1
,
INFINI_STATUS_NOT_IMPLEMENTED
=
2
,
INFINI_STATUS_BAD_PARAM
=
3
,
INFINI_STATUS_NULL_POINTER
=
4
,
INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED
=
5
,
INFINI_STATUS_DEVICE_NOT_FOUND
=
6
,
// Op Errors
INFINI_STATUS_BAD_TENSOR_DTYPE
=
10
,
INFINI_STATUS_BAD_TENSOR_SHAPE
=
11
,
INFINI_STATUS_BAD_TENSOR_STRIDES
=
12
,
INFINI_STATUS_INSUFFICIENT_WORKSPACE
=
13
,
}
infiniStatus_t
;
#endif // __INFINI_STATUS__
#ifndef __INFINI_DEVICE__
#define __INFINI_DEVICE__
...
...
include/infinirt.h
View file @
a9db6af1
#ifndef __INFINIRT_H__
#define __INFINIRT_H__
#include "infinicore.h"
typedef
void
*
infinirtStream_t
;
typedef
void
*
infinirtEvent_t
;
__C
__export
infiniStatus_t
infinirtInit
(
infiniDevice_t
device
);
// Device
__C
__export
infiniStatus_t
infinirtSetDevice
(
infiniDevice_t
device
,
int
device_id
);
__C
__export
infiniStatus_t
infinirtGetDevice
(
infiniDevice_t
*
device_ptr
,
int
*
device_id_ptr
);
__C
__export
infiniStatus_t
infinirtGetDeviceCount
(
infiniDevice_t
device
,
int
*
count
);
__C
__export
infiniStatus_t
infinirtDeviceSynchronize
();
// Stream
__C
__export
infiniStatus_t
infinirtStreamCreate
(
infinirtStream_t
*
stream_ptr
);
__C
__export
infiniStatus_t
infinirtStreamDestroy
(
infinirtStream_t
stream
);
__C
__export
infiniStatus_t
infinirtStreamSynchronize
(
infinirtStream_t
stream
);
__C
__export
infiniStatus_t
infinirtStreamWaitEvent
(
infinirtStream_t
stream
,
infinirtEvent_t
event
);
// Event
__C
__export
infiniStatus_t
infinirtEventCreate
(
infinirtEvent_t
*
event_ptr
);
__C
__export
infiniStatus_t
infinirtEventRecord
(
infinirtEvent_t
event
,
infinirtStream_t
stream
);
__C
__export
infiniStatus_t
infinirtEventQuery
(
infinirtEvent_t
event
);
__C
__export
infiniStatus_t
infinirtEventSynchronize
(
infinirtEvent_t
event
);
__C
__export
infiniStatus_t
infinirtEventDestroy
(
infinirtEvent_t
event
);
// Memory
typedef
enum
{
INFINIRT_MEMCPY_H2H
=
0
,
INFINIRT_MEMCPY_H2D
=
1
,
INFINIRT_MEMCPY_D2H
=
2
,
INFINIRT_MEMCPY_D2D
=
3
,
}
infinirtMemcpyKind_t
;
__C
__export
infiniStatus_t
infinirtMalloc
(
void
**
p_ptr
,
size_t
size
);
__C
__export
infiniStatus_t
infinirtMallocHost
(
void
**
p_ptr
,
size_t
size
);
__C
__export
infiniStatus_t
infinirtFree
(
void
*
ptr
);
__C
__export
infiniStatus_t
infinirtFreeHost
(
void
*
ptr
);
__C
__export
infiniStatus_t
infinirtMemcpy
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
infinirtMemcpyKind_t
kind
);
__C
__export
infiniStatus_t
infinirtMemcpyAsync
(
void
*
dst
,
const
void
*
src
,
infinirtMemcpyKind_t
kind
,
infinirtStream_t
stream
);
// Stream-ordered memory
__C
__export
infiniStatus_t
infinirtMallocAsync
(
void
**
p_ptr
,
size_t
size
,
infinirtStream_t
stream
);
__C
__export
infiniStatus_t
infinirtFreeAsync
(
void
*
ptr
,
infinirtStream_t
stream
);
#endif // __INFINIRT_H__
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment