0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-09-27 19:28:52 +02:00

ircd::gpt: Cache pipe::code instance in shared_ptr for task reuse.

This commit is contained in:
Jason Volk 2022-07-31 02:46:05 -07:00
parent 9f79bb54b8
commit 1f947f982c
4 changed files with 8 additions and 2 deletions

View file

@ -21,6 +21,7 @@ namespace ircd::gpt::pipe
struct prof; struct prof;
extern conf::item<size_t> queue_cycles; extern conf::item<size_t> queue_cycles;
extern std::shared_ptr<code> default_code;
}; };
#include "code.h" #include "code.h"

View file

@ -34,7 +34,7 @@ struct ircd::gpt::task
gpt::ctrl *ctrl {nullptr}; gpt::ctrl *ctrl {nullptr};
/// Pipe code /// Pipe code
std::unique_ptr<pipe::code> code; std::shared_ptr<pipe::code> code;
/// Pipe model /// Pipe model
std::unique_ptr<pipe::model> model; std::unique_ptr<pipe::model> model;

View file

@ -251,7 +251,8 @@ try
} }
,code ,code
{ {
std::make_unique<pipe::code>() pipe::default_code?:
(pipe::default_code = std::make_shared<pipe::code>())
} }
,model ,model
{ {

View file

@ -16,6 +16,9 @@ namespace ircd::gpt::pipe
extern const ircd::run::changed quit_handler; extern const ircd::run::changed quit_handler;
} }
decltype(ircd::gpt::pipe::default_code)
ircd::gpt::pipe::default_code;
decltype(ircd::gpt::pipe::queue_cycles) decltype(ircd::gpt::pipe::queue_cycles)
ircd::gpt::pipe::queue_cycles ircd::gpt::pipe::queue_cycles
{ {
@ -51,6 +54,7 @@ noexcept
cl::sync(); cl::sync();
ctx::yield(); ctx::yield();
pipe::default_code.reset();
} }
// //