Skip to content
This repository has been archived by the owner on Oct 25, 2024. It is now read-only.

Commit

Permalink
debug
Browse files Browse the repository at this point in the history
Signed-off-by: Yu, Zhentao <zhentao.yu@intel.com>
  • Loading branch information
zhentaoyu committed Oct 12, 2023
1 parent 670a9d9 commit 2bc9528
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 80 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON)

set(TARGET pybind_gptj)
add_executable_w_warning(${TARGET} pybind_gptj.cpp)
target_link_libraries(${TARGET} PUBLIC ne_layers common gptj ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries(${TARGET} PUBLIC ne_layers common gptneox ${CMAKE_THREAD_LIBS_INIT})
target_compile_features(${TARGET} PRIVATE cxx_std_11)

# all models quant
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ void* init_gptj(int seed, int n_predict, int n_batch, int top_k, float top_p, fl
gpt_params params;
params.n_threads = n_threads;
params.seed = seed;
params.model_arch = MODEL_GPTJ;
params.model_arch = MODEL_GPTNEOX;
params.n_ctx = n_ctx;
params.n_predict = n_predict;
params.n_batch = n_batch;
Expand Down Expand Up @@ -229,88 +229,88 @@ int main(int argc, char* argv[]) {
for (auto gptj_in_all : ctxs) {
auto res = eval_gptj_char(
gptj_in_all,
// "she opened the door and see",
"she opened the door and see",
// "Once upon a time",
// "Tell me 10 things about jazz music",
// "A spaceship lands on the moon",
// "What is the meaning of life?",
"2017: It is done, and submitted. You can play 'Survival of the Tastiest' on Android, and on the web. Playing "
"on the web works, but you have to simulate multiple touch for table moving and that can be a bit confusing. "
"There is a lot I'd like to talk about. I will go through every topic, insted of making the typical what went "
"right/wrong list. Concept Working over the theme was probably one of the hardest tasks which I had to face. "
"Originally, I had an idea of what kind of game I wanted to develop, gameplay wise - something with a lot of "
"enemies/actors, simple graphics, maybe set in space, controlled from a top-down view. I was confident that I "
"could fit any theme around it. In the end, the problem with a theme like 'Evolution' in a game is that "
"evolution is unassisted. It happens through several seemingly random mutations over time, with the most apt "
"permutation surviving. This genetic car simulator is, in my opinion, a great example of actual evolution of a "
"species facing a challenge. But is it a game? In a game, you need to control something to reach an objective. "
"That control goes against what evolution is supposed to be like. If you allow the user to pick how to evolve "
"something, it's not evolution anymore - it's the equivalent of intelligent design, the fable invented by "
"creationists to combat the idea of evolution. Being agnostic and a Pastafarian, that's not something that "
"rubbed me the right way. Hence, my biggest dillema when deciding what to create was not with what I wanted to "
"create, but with what I did not. I didn't want to create an 'intelligent design' simulator and wrongly call "
"it evolution. This is a problem, of course, every other contestant also had to face. And judging by the "
"entries submitted, not many managed to work around it. I'd say the only real solution was through the use of "
"artificial selection, somehow. So far, I haven't seen any entry using this at its core gameplay. Alas, this "
"is just a fun competition and after a while I decided not to be as strict with the game idea, and allowed "
"myself to pick whatever I thought would work out. My initial idea was to create something where humanity "
"tried to evolve to a next level, but had some kind of foe trying to stop them from doing so. I kind of had "
"this image of human souls flying in space towards a monolith or a space baby (all based in 2001: A Space "
"Odyssey of course) but I couldn't think of compelling (read: serious) mechanics for that. Borgs were my next "
"inspiration, as their whole hypothesis fit pretty well into the evolution theme. But how to make it work? Are "
"you the borg, or fighting the Borg? The third and final idea came to me through my girlfriend, who somehow "
"gave me the idea of making something about the evolution of Pasta. The more I thought about it the more it "
"sounded like it would work, so I decided to go with it. Conversations with my inspiring co-worker Roushey "
"(who also created the 'Mechanical Underdogs' signature logo for my intros) further matured the concept, as it "
"involved into the idea of having individual pieces of pasta flying around and trying to evolve until they "
"became all-powerful. A secondary idea here was that the game would work to explain how the Flying Spaghetti "
"Monster came to exist - by evolving from a normal dinner table. So the idea evolved more or less into this: "
"you are sitting a table. You have your own plate, with is your 'base'. There are 5 other guests at the table, "
"each with their own plate. Your plate can spawn little pieces of pasta. You do so by 'ordering' them through "
"a menu. Some pastas are better than others; some are faster, some are stronger. They have varying 'costs', "
"which are debited from your credits (you start with a number of credits). Once spawned, your pastas start "
"flying around. Their instinct is to fly to other plates, in order to conquer them (the objective of the game "
"is having your pasta conquer all the plates on the table). But they are really autonomous, so after being "
"spawned, you have no control over your pasta (think DotA or LoL creeps). Your pasta doesn't like other "
"people's pasta, so if they meet, they shoot sauce at each other until one dies. You get credits for other "
"pastas your own pasta kill. Once a pasta is in the vicinity of a plate, it starts conquering it for its team. "
"It takes around 10 seconds for a plate to be conquered; less if more pasta from the same team are around. If "
"pasta from other team are around, though, they get locked down in their attempt, unable to conquer the plate, "
"until one of them die (think Battlefield's standard 'Conquest' mode). You get points every second for every "
"plate you own. Over time, the concept also evolved to use an Italian bistro as its main scenario. Carlos, "
"Carlos' Bistro's founder and owner Setup No major changes were made from my work setup. I used FDT and "
"Starling creating an Adobe AIR (ActionScript) project, all tools or frameworks I already had some knowledge "
"with. One big change for me was that I livestreamed my work through a twitch.tv account. This was a new thing "
"for me. As recommended by Roushey, I used a program called XSplit and I got to say, it is pretty amazing. It "
"made the livestream pretty effortless and the features are awesome, even for the free version. It was great "
"to have some of my friends watch me, and then interact with them and random people through chat. It was also "
"good knowing that I was also recording a local version of the files, so I could make a timelapse video later. "
"Knowing the video was being recorded also made me a lot more self-conscious about my computer use, as if "
"someone was watching over my shoulder. It made me realize that sometimes I spend too much time in seemingly "
"inane tasks (I ended up wasting the longest time just to get some text alignment the way I wanted - it'll "
"probably drive someone crazy if they watch it) and that I do way too many typos where writing code. I pretty "
"much spend half of the time writing a line and the other half fixing the crazy characters in it. My own "
"stream was probably boring to watch since I was coding for the most time. But livestreaming is one of the "
"cool things to do as a spectator too. It was great seeing other people working - I had a few tabs opened on "
"my second monitor all the time. It's actually a bit sad, because if I could, I could have spent the whole "
"weekend just watching other people working! But I had to do my own work, so I'd only do it once in a while, "
"when resting for a bit. Design Although I wanted some simple, low-fi, high-contrast kind of design, I ended "
"up going with somewhat realistic (vector) art. I think it worked very well, fitting the mood of the game, but "
"I also went overboard. For example: to know the state of a plate (who owns it, who's conquering it and how "
"much time they have left before conquering it, which pasta units are in the queue, etc), you have to look at "
"the plate's bill. The problem I realized when doing some tests is that people never look at the bill! They "
"think it's some kind of prop, so they never actually read its details. Plus, if you're zoomed out too much, "
"you can't actually read it, so it's hard to know what's going on with the game until you zoom in to the area "
"of a specific plate. One other solution that didn't turn out to be as perfect as I thought was how to "
"indicate who a plate base belongs to. In the game, that's indicated by the plate's decoration - its color "
"denotes the team owner. But it's something that fits so well into the design that people never realized it, "
"until they were told about it. In the end, the idea of going with a full physical metaphor is one that should "
"be done with care. Things that are very important risk becoming background noise, unless the player knows its "
"importance. Originally, I wanted to avoid any kind of heads-up display in my game. In the end, I ended up "
"adding it at the bottom to indicate your credits and bases owned, as well as the hideous "
"out-of-place-and-still-not-obvious 'Call Waiter' button. But in hindsight, I should have gone with a simple "
"HUD from the start, especially one that indicated each team's colors and general state of the game without "
"the need for zooming in and out. Development Development went fast.",
// "2017: It is done, and submitted. You can play 'Survival of the Tastiest' on Android, and on the web. Playing "
// "on the web works, but you have to simulate multiple touch for table moving and that can be a bit confusing. "
// "There is a lot I'd like to talk about. I will go through every topic, insted of making the typical what went "
// "right/wrong list. Concept Working over the theme was probably one of the hardest tasks which I had to face. "
// "Originally, I had an idea of what kind of game I wanted to develop, gameplay wise - something with a lot of "
// "enemies/actors, simple graphics, maybe set in space, controlled from a top-down view. I was confident that I "
// "could fit any theme around it. In the end, the problem with a theme like 'Evolution' in a game is that "
// "evolution is unassisted. It happens through several seemingly random mutations over time, with the most apt "
// "permutation surviving. This genetic car simulator is, in my opinion, a great example of actual evolution of a "
// "species facing a challenge. But is it a game? In a game, you need to control something to reach an objective. "
// "That control goes against what evolution is supposed to be like. If you allow the user to pick how to evolve "
// "something, it's not evolution anymore - it's the equivalent of intelligent design, the fable invented by "
// "creationists to combat the idea of evolution. Being agnostic and a Pastafarian, that's not something that "
// "rubbed me the right way. Hence, my biggest dillema when deciding what to create was not with what I wanted to "
// "create, but with what I did not. I didn't want to create an 'intelligent design' simulator and wrongly call "
// "it evolution. This is a problem, of course, every other contestant also had to face. And judging by the "
// "entries submitted, not many managed to work around it. I'd say the only real solution was through the use of "
// "artificial selection, somehow. So far, I haven't seen any entry using this at its core gameplay. Alas, this "
// "is just a fun competition and after a while I decided not to be as strict with the game idea, and allowed "
// "myself to pick whatever I thought would work out. My initial idea was to create something where humanity "
// "tried to evolve to a next level, but had some kind of foe trying to stop them from doing so. I kind of had "
// "this image of human souls flying in space towards a monolith or a space baby (all based in 2001: A Space "
// "Odyssey of course) but I couldn't think of compelling (read: serious) mechanics for that. Borgs were my next "
// "inspiration, as their whole hypothesis fit pretty well into the evolution theme. But how to make it work? Are "
// "you the borg, or fighting the Borg? The third and final idea came to me through my girlfriend, who somehow "
// "gave me the idea of making something about the evolution of Pasta. The more I thought about it the more it "
// "sounded like it would work, so I decided to go with it. Conversations with my inspiring co-worker Roushey "
// "(who also created the 'Mechanical Underdogs' signature logo for my intros) further matured the concept, as it "
// "involved into the idea of having individual pieces of pasta flying around and trying to evolve until they "
// "became all-powerful. A secondary idea here was that the game would work to explain how the Flying Spaghetti "
// "Monster came to exist - by evolving from a normal dinner table. So the idea evolved more or less into this: "
// "you are sitting a table. You have your own plate, with is your 'base'. There are 5 other guests at the table, "
// "each with their own plate. Your plate can spawn little pieces of pasta. You do so by 'ordering' them through "
// "a menu. Some pastas are better than others; some are faster, some are stronger. They have varying 'costs', "
// "which are debited from your credits (you start with a number of credits). Once spawned, your pastas start "
// "flying around. Their instinct is to fly to other plates, in order to conquer them (the objective of the game "
// "is having your pasta conquer all the plates on the table). But they are really autonomous, so after being "
// "spawned, you have no control over your pasta (think DotA or LoL creeps). Your pasta doesn't like other "
// "people's pasta, so if they meet, they shoot sauce at each other until one dies. You get credits for other "
// "pastas your own pasta kill. Once a pasta is in the vicinity of a plate, it starts conquering it for its team. "
// "It takes around 10 seconds for a plate to be conquered; less if more pasta from the same team are around. If "
// "pasta from other team are around, though, they get locked down in their attempt, unable to conquer the plate, "
// "until one of them die (think Battlefield's standard 'Conquest' mode). You get points every second for every "
// "plate you own. Over time, the concept also evolved to use an Italian bistro as its main scenario. Carlos, "
// "Carlos' Bistro's founder and owner Setup No major changes were made from my work setup. I used FDT and "
// "Starling creating an Adobe AIR (ActionScript) project, all tools or frameworks I already had some knowledge "
// "with. One big change for me was that I livestreamed my work through a twitch.tv account. This was a new thing "
// "for me. As recommended by Roushey, I used a program called XSplit and I got to say, it is pretty amazing. It "
// "made the livestream pretty effortless and the features are awesome, even for the free version. It was great "
// "to have some of my friends watch me, and then interact with them and random people through chat. It was also "
// "good knowing that I was also recording a local version of the files, so I could make a timelapse video later. "
// "Knowing the video was being recorded also made me a lot more self-conscious about my computer use, as if "
// "someone was watching over my shoulder. It made me realize that sometimes I spend too much time in seemingly "
// "inane tasks (I ended up wasting the longest time just to get some text alignment the way I wanted - it'll "
// "probably drive someone crazy if they watch it) and that I do way too many typos where writing code. I pretty "
// "much spend half of the time writing a line and the other half fixing the crazy characters in it. My own "
// "stream was probably boring to watch since I was coding for the most time. But livestreaming is one of the "
// "cool things to do as a spectator too. It was great seeing other people working - I had a few tabs opened on "
// "my second monitor all the time. It's actually a bit sad, because if I could, I could have spent the whole "
// "weekend just watching other people working! But I had to do my own work, so I'd only do it once in a while, "
// "when resting for a bit. Design Although I wanted some simple, low-fi, high-contrast kind of design, I ended "
// "up going with somewhat realistic (vector) art. I think it worked very well, fitting the mood of the game, but "
// "I also went overboard. For example: to know the state of a plate (who owns it, who's conquering it and how "
// "much time they have left before conquering it, which pasta units are in the queue, etc), you have to look at "
// "the plate's bill. The problem I realized when doing some tests is that people never look at the bill! They "
// "think it's some kind of prop, so they never actually read its details. Plus, if you're zoomed out too much, "
// "you can't actually read it, so it's hard to know what's going on with the game until you zoom in to the area "
// "of a specific plate. One other solution that didn't turn out to be as perfect as I thought was how to "
// "indicate who a plate base belongs to. In the game, that's indicated by the plate's decoration - its color "
// "denotes the team owner. But it's something that fits so well into the design that people never realized it, "
// "until they were told about it. In the end, the idea of going with a full physical metaphor is one that should "
// "be done with care. Things that are very important risk becoming background noise, unless the player knows its "
// "importance. Originally, I wanted to avoid any kind of heads-up display in my game. In the end, I ended up "
// "adding it at the bottom to indicate your credits and bases owned, as well as the hideous "
// "out-of-place-and-still-not-obvious 'Call Waiter' button. But in hindsight, I should have gone with a simple "
// "HUD from the start, especially one that indicated each team's colors and general state of the game without "
// "the need for zooming in and out. Development Development went fast.",
128, 40, 1.0, 0.8, 2048);
std::cout << res << std::endl;
exit_gptj(gptj_in_all);
Expand Down

0 comments on commit 2bc9528

Please sign in to comment.